Die Ressourcen sind geladen. Beförderung...

Interaktive Bedienelemente in der Statusleiste

Zusätzlich zum Entwurf interaktiver Steuerelemente in der Spalte Strategie Interaktion ist es auch möglich, interaktiven Steuerelementen in der Spalte Strategie Status zu entwerfen.LogStatusFunktionsbereich der Syntax-Anleitung- Ich weiß. Die Buttons der Statusleiste können wie folgt kategorisiert werden:

  • Gemeinsame Tastensteuerungen Ein Beispiel für eine Datenstruktur ist:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Tastensteuerung mit Dateneingabe VerwendeninputEigenschaft zur Einstellung der Eingabe-Steuerungsoptionen mit Beispieldatenstruktur:

    {"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}]
            }
        },
    }
    
  • Tastensteuerung mit einem Satz Eingabedaten VerwendengroupEigenschaft zur Einstellung der Optionen für eine Gruppe von Eingabeaufgaben, mit einer Beispieldatenstruktur:

    {
        "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"
        }],
    }
    

Codieren Sie diese Knopfsteuerungs-JSON-Daten in eine JSON-String und wickeln Sie sie dann mit`Siehe hier, wie man das in der Statusleiste ausfügt.

function main() {
    var btn = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    LogStatus("`" + JSON.stringify(btn) + "`")
}

Diese Tastensteuerungen können auch in Statusleiste-Formulare geschrieben werden, sieheSyntaxführerfür detaillierte Beispiele.

Die Struktur derinputDas Feld entspricht der Struktur einer einzigen Kontrolle in dergroupNachstehend eine ausführliche Beschreibung:

{
    "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
}

KomponentenkonfigurationsettingsJedes Feld ist detailliert beschrieben:

  • settings.required: Ob diese Option erforderlich ist.
  • settings.disabledOb sie deaktiviert werden soll.
  • settings.min: Gültig, wenntype=number, der den Mindestwert oder die Mindeststrängenlänge anzeigt.
  • settings.max: Gültig, wenntype=number, der den Höchstwert oder die Höchststrängenlänge anzeigt.
  • settings.step: type=number, gültig, wennrender=slider, zeigt die Stufenlänge an.
  • settings.multiple: type=selectedist gültig, was bedeutet, dass mehrere Auswahlmöglichkeiten unterstützt werden.
  • settings.customizable: type=selectedist gültig, was anzeigt, dass die Anpassung unterstützt wird; Benutzer können direkt neue Optionen in der Dropdown-Fenstersteuerung bearbeiten und hinzufügen. Wenn die neu bearbeitete Option ausgewählt ist, wird der Name der Option anstelle des Wertes verwendet, der durch die Option dargestellt wird, wenn die Interaktion ausgelöst wird.
  • settings.options: Gültig, wenntype=selected, mit Angabe des Datenformats für die Auswahloption:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Typ der Rendering-Komponente. Wann?type=number, settings.rendernicht eingestellt ist (Standardnummer-Eingabefeld), optional:slider(Schieberaden)date(Zeitauswahlgerät gibt den Zeitstempel zurück). Wann?type=string, settings.rendernicht eingestellt ist (Standard-Einzeilen-Eingabefeld).textarea(Mehrzeilen-Eingabe)date(Zeitauswahlgerät gibt yyyy-MM-dd hh:mm:ss zurück),color(Kleinschalter gibt #FF00FF zurück). Wann?type=selected, settings.rendernicht eingestellt (Standard-Roll-Down-Box), optional:segment(Segmentwahl).type=booleanhat derzeit nur ein Standardcheckfeld.

Unterstützt zweisprachige Einstellungen, zum Beispiel:'选项 | options'Die Anpassung an das aktuelle Sprachumfeld erfolgt durch eine einheitliche Kontrolle in dergroupFeld als Beispiel, das vollständige Beispiel:

{
    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}]
    }
}
Komponentenkonfiguration Handel mit Optionen