En plus de concevoir des commandes interactives dans la colonne LogStatus
section fonction du
Contrôles de boutons communs Un exemple de structure de données est:
{"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
Contrôle des boutons avec entrée de données
Utilisez leinput
propriété permettant de définir les options de commande d'entrée, avec une structure de données par exemple:
{"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}]
}
},
}
Contrôle par bouton avec un ensemble de données d'entrée
Utilisez legroup
propriété permettant de définir les options pour un groupe de commandes d'entrée, avec une structure de données par exemple:
{
"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"
}],
}
Codifier ces données JSON de contrôle de bouton dans une chaîne JSON, puis l'envelopper avec`
Prenons le langage JavaScript comme exemple:
function main() {
var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
LogStatus("`" + JSON.stringify(btn) + "`")
}
Ces commandes de bouton peuvent également être écrites sur les formulaires de barre d'état, veuillez vous référer àGuide de syntaxepour des exemples détaillés.
La structure de lainput
Le champ est cohérent avec la structure d'un seul contrôle dans legroup
Voici une description détaillée:
{
"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
}
Configuration des composantssettings
chaque champ est décrit en détail:
settings.required
: Si cette option est requise.settings.disabled
Si vous devez désactiver.settings.min
: Valide lorsquetype=number
, indiquant la valeur minimale ou la longueur minimale de chaîne.settings.max
: Valide lorsquetype=number
, indiquant la valeur maximale ou la longueur maximale de chaîne.settings.step
: type=number
, valable lorsquerender=slider
, indique la longueur de la marche.settings.multiple
: type=selected
est valide, ce qui indique que des sélections multiples sont prises en charge.settings.customizable
: type=selected
est valide, indiquant que la personnalisation est prise en charge; les utilisateurs peuvent directement modifier et ajouter de nouvelles options dans le contrôle de la fenêtre déroulante.settings.options
: Valide lorsquetype=selected
, indiquant le format de données de l'option sélecteur:["option 1", "option 2"]
, [{'name':'xxx','value':0}, {'name':'xxx','value':1}]
.settings.render
: Type de composant de rendu.
Quand?type=number
, settings.render
n'est pas réglé (boîte de saisie de numéro par défaut), facultatif:slider
(barre coulissante),date
(le sélecteur d'heure renvoie l'horodatage).
Quand?type=string
, settings.render
n'est pas réglé (boîte de saisie par défaut d'une ligne).textarea
(entrée à plusieurs lignes),date
(le sélecteur d'heure renvoie yyyy-MM-dd hh:mm:ss),color
(le sélecteur de couleur renvoie #FF00FF).
Quand?type=selected
, settings.render
n'est pas réglé (boîte déroulante par défaut), facultatif:segment
(sélecteur de segment).type=boolean
présente actuellement une case à cocher par défaut.Prend en charge les paramètres bilingues, par exemple:'选项 | options'
La mise en place d'un système de contrôle unique dans le domaine de l'apprentissage des langues sera adaptée à l'environnement linguistique actuel.group
champ comme exemple, l'exemple complet est:
{
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}]
}
}
Configuration des composants
Options de négociation