Além de projetar controles interativos na coluna LogStatus
secção de funções do
Controles de botões comuns Um exemplo de estrutura de dados é:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Controle de botões com entrada de dados
Utilize oinput
Propriedade para definir as opções de controlo de entrada, com um exemplo de estrutura de dados:
{"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}
{
"type": "button",
"cmd": "test1",
"name": "test1",
"input": {
"type": "selected",
"name": "selected",
"label": "drop-down box",
"description": "description",
"default": 100,
"settings": {
"multiple": true,
"customizable": true,
"options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
}
},
}
Controle de botões com um conjunto de dados de entrada
Utilize ogroup
Propriedade para definir as opções para um grupo de comandos de entrada, com um exemplo de estrutura de dados:
{
"type": "button",
"cmd": "open",
"name": "open positions",
"group": [
{"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
{"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
{"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
{"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": True}
]
}
{
"type": "button",
"cmd": "test2",
"name": "test2",
"group": [{
"type": "selected",
"name": "selected",
"label": "drop-down box",
"description": "description",
"default": 200,
"group": "group1",
"settings": {
"multiple": true,
"options":[{"name": "A", "value": 100}, {"name": "B", "value": 200}]
}
}, {
"type": "string",
"name": "string",
"label": "input box",
"description": "description",
"default": "ABC",
"group": "group1"
}],
}
Codificar estes dados de controle de botão JSON em uma cadeia de caracteres JSON, em seguida, embrulhá-lo com`
Tome a linguagem JavaScript como exemplo:
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Estes controles de botão também podem ser escritos em formulários de barra de status, por favor consulteGuia de sintaxepara exemplos pormenorizados.
A estrutura doinput
O campo é consistente com a estrutura de um único controlo nogroup
A seguir, uma descrição pormenorizada:
{
"type": "selected", // Control type (required field), supports the following settings: number, string, selected, boolean
"name": "test", // Name (required when used in group)
"label": "topic", // Title (required field)
"description": "desc", // Component tips
"default": 1, // Default value; if the settings field is not set in the current JSON structure, defValue is compatible and can be used instead of default
"filter": "a>1", // Selector. If this field is not set, no filtering (controls are displayed). If this field is set, no filtering (controls are displayed) occurs when the expression is true. Filtering occurs when the expression is false (controls are not displayed)
// For the selector, take the expression a>1 in the current example as an example, a refers to the value of the control with name a under the group field in the structure of type=button. This value is used to determine whether to filter.
"group": "group1", // Grouping
"settings": { ... }, // Component configuration
}
Configuração do componentesettings
Cada campo é descrito em pormenor:
settings.required
Se esta opção é necessária.settings.disabled
Se desativar.settings.min
: válido quando:type=number
, indicando o valor mínimo ou o comprimento mínimo da corda.settings.max
: válido quando:type=number
, indicando o valor máximo ou o comprimento máximo da corda.settings.step
: type=number
, válido quandorender=slider
, indica o comprimento do degrau.settings.multiple
: type=selected
é válida, indicando que são suportadas várias seleções.settings.customizable
: type=selected
se for válida, indicando que a personalização é suportada; os usuários podem editar e adicionar novas opções diretamente no controle da caixa suspensa. Se a opção recentemente editada for selecionada, o nome da opção é usado em vez do valor representado pela opção quando a interação é acionada.settings.options
: válido quando:type=selected
, indicando o formato dos dados da opção de selecção:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Tipo de componente de renderização.
Quando?type=number
, settings.render
não está definido (caixa de entrada de número por defeito), opcional:slider
(banda deslizante),date
(O selector de horas retorna o carimbo de hora).
Quando?type=string
, settings.render
não está definido (caixa de entrada de linha única por defeito).textarea
(entrada de várias linhas),date
(O selector de tempo retorna anu-MM-dd hh:mm:ss),color
(O selector de cores retorna #FF00FF).
Quando?type=selected
, settings.render
não está definido (caixa suspensa padrão), opcional:segment
(selector de segmentos).type=boolean
atualmente tem apenas uma caixa de seleção padrão.Suporta configurações bilíngues, por exemplo:'选项 | options'
O sistema de controlo único será adaptado em função do ambiente linguístico actual.group
campo como exemplo, o exemplo completo é:
{
type:'selected',
name:'test',
label:'选项|options',
description:'描述|description',
default:0, // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
filter:'a>1&&a<10',
group:'分组|group',
settings:{
multiple:true,
customizable:true,
options:[{name:'xxx|yyy',value:0}]
}
}
Configuração do componente
Negociação de opções