В процессе загрузки ресурсов... загрузка...

Интерактивные элементы управления в строке состояния

В дополнение к проектированию интерактивных элементов управления в столбце Strategy Interaction, можно также проектировать интерактивные элементы управления в столбце "Статус стратегии".LogStatusраздел функций в руководстве по синтаксису- Да. Кнопки управления в строке состояния можно классифицировать как:

  • Общие кнопки управления Примером структуры данных является:

    {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
    
  • Кнопка управления с вводом данных Используйтеinputсвойство для настройки опций управления вводом, с примерной структурой данных:

    {"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}]
            }
        },
    }
    
  • Кнопка управления с набором входных данных Используйтеgroupсвойство для настройки параметров для группы элементов управления вводом с примерной структурой данных:

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

Кодировать эти кнопки управления JSON данных в строку JSON, а затем обернуть его с`Возьмем язык JavaScript в качестве примера:

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

Эти кнопки управления также могут быть написаны на формы строки состояния, пожалуйста, обратитесь кРуководство по синтаксисудля подробных примеров.

Структураinputполе соответствует структуре одного контроля вgroupНиже приведено подробное описание:

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

Конфигурация компонентаsettingsкаждое поле подробно описано:

  • settings.required: Требуется ли этот вариант.
  • settings.disabledОтключить или нет.
  • settings.min: Действует, когда:type=number, с указанием минимального значения или минимальной длины строки.
  • settings.max: Действует, когда:type=number, указывающие максимальное значение или максимальную длину струны.
  • settings.step: type=number, действителен, когда:render=slider, указывает длину шага.
  • settings.multiple: type=selectedявляется действительным, что указывает на поддержку многократного выбора.
  • settings.customizable: type=selectedЕсли вы выбрали опцию, которую вы только что редактировали, вместо значения, представленного опцией при запуске взаимодействия, используется имя опции.
  • settings.options: Действует, когда:type=selected, указывающий формат данных опции выборщика:["option 1", "option 2"], [{'name':'xxx','value':0}, {'name':'xxx','value':1}].
  • settings.render: Тип компонента рендеринга. Когда?type=number, settings.renderне установлено (по умолчанию ввод номер), необязательно:slider(слайдерная панель),date(выборщик времени возвращает временную отметку). Когда?type=string, settings.renderне установлен (по умолчанию однострочное поле ввода).textarea(ввод с несколькими линиями),date(выбиратель времени возвращает yyyy-MM-dd hh:mm:ss),color(выбиратель цвета возвращает #FF00FF). Когда?type=selected, settings.renderне установлен (по умолчанию выпадающее окно), необязательно:segment(выбиратель сегмента).type=booleanв настоящее время имеет только отметку по умолчанию.

Поддерживает двуязычные настройки, например:'选项 | options'будет адаптирована в соответствии с текущей языковой средой;groupполе в качестве примера, полный пример:

{
    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}]
    }
}
Конфигурация компонента Торговля опционами