Además de diseñar controles interactivos en la columna LogStatus
sección de funciones de la
Control de botón común Un ejemplo de una estructura de datos es:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Control de botón con entrada de datos
Utilice elinput
propiedad para establecer las opciones de control de entrada, con un ejemplo de estructura de datos:
{"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}]
}
},
}
Control de botón con un conjunto de datos de entrada
Utilice elgroup
propiedad para establecer las opciones de un grupo de controles de entrada, con un ejemplo de estructura de datos:
{
"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 estos botones de control de datos JSON en una cadena JSON, a continuación, envolverlo con`
Tomemos el lenguaje JavaScript como ejemplo:
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Estos controles de botón también se pueden escribir en los formularios de la barra de estado, por favor consulteGuía de sintaxispara ejemplos detallados.
La estructura de lainput
En el caso de las pruebas de detección, el campo de ensayo es consistente con la estructura de un solo control en elgroup
La siguiente es una descripción detallada:
{
"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
}
Configuración del componentesettings
cada campo se describe con detalle:
settings.required
: Si esta opción es necesaria.settings.disabled
Si desactivar.settings.min
: válido cuando:type=number
, indicando el valor mínimo o la longitud mínima de la cuerda.settings.max
: válido cuando:type=number
, indicando el valor máximo o la longitud máxima de la cuerda.settings.step
: type=number
, válido cuandorender=slider
, indica la longitud del paso.settings.multiple
: type=selected
es válido, lo que indica que se admiten múltiples selecciones.settings.customizable
: type=selected
Si se selecciona la opción recién editada, se utiliza el nombre de la opción en lugar del valor representado por la opción cuando se activa la interacción.settings.options
: válido cuando:type=selected
, indicando el formato de los datos de la opción del selector:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Tipo de componente de renderizado.
¿Cuándo?type=number
, settings.render
no está fijado (cuadro de entrada de número predeterminado), opcional:slider
(línea de deslizamiento),date
(el selector de tiempo devuelve la marca de tiempo).
¿Cuándo?type=string
, settings.render
no está configurado (cuadro de entrada de una sola línea predeterminado).textarea
(entrada de varias líneas),date
(el selector de tiempo devuelve yyyy-MM-dd hh:mm:ss),color
(El selector de colores devuelve #FF00FF).
¿Cuándo?type=selected
, settings.render
no está configurado (cuadro desplegable predeterminado), opcional:segment
(selector de segmentos).type=boolean
Actualmente sólo tiene una casilla de verificación predeterminada.Apoya la configuración bilingüe, por ejemplo:'选项 | options'
El sistema de control único en el ámbito lingüístico se adaptará al entorno lingüístico actual.group
campo como ejemplo, el ejemplo completo es:
{
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}]
}
}
Configuración de los componentes
Negociación de opciones