资源加载中... loading...

LogStatus-btnTypeTwo

该JSON结构用于配置状态栏中的按钮控件,按钮控件JSON结构可以嵌入到状态栏表格JSON结构中。目前最新版本的按钮JSON结构。 状态栏按钮控件构造范例(按钮触发点击之后,弹框中包含多个输入控件,通过group字段构造):

{
    "type": "button",
    "cmd": "open",
    "name": "开仓下单",
    "group": [{
        "type": "selected",
        "name": "tradeType",
        "label": "下单类型",
        "description": "市价单、限价单",
        "default": 0,
        "group": "交易设置",
        "settings": {
            "options": ["市价单", "限价单"],
            "required": true,
        }
    }, {
        "type": "selected",
        "name": "direction",
        "label": "交易方向",
        "description": "买入、卖出",
        "default": "buy",
        "group": "交易设置",
        "settings": {
            "render": "segment",
            "required": true,
            "options": [{"name": "买入", "value": "buy"}, {"name": "卖出", "value": "sell"}],
        }
    }, {
        "type": "number",
        "name": "price",
        "label": "价格",
        "description": "订单的价格",
        "group": "交易设置",
        "filter": "tradeType==1",
        "settings": {
            "required": true,
        }
    }, {
        "type": "number",
        "name": "amount",
        "label": "下单量",
        "description": "订单的下单量",
        "group": "交易设置",
        "settings": {
            "required": true,
        }
    }],
}

状态栏按钮控件点击触发后的弹框中的控件通过input或者group设置。

对于按钮控件来说固定设置为:button。 type string 按钮控件上的文本,即按钮名称。 name string 按钮控件触发点击操作时,发送给策略的交互命令内容。 cmd string 在构造状态栏按钮进行交互时也支持输入数据,交互指令最终由GetCommand()函数捕获。给状态栏中的按钮控件的JSON数据结构中增加input项用于配置按钮触发时显示的弹框中的输入控件。 相对于旧版本的input结构,新版本有一些新增字段、改动:

{
    "type": "selected",
    "name": "test",         
    "label": "topic",       
    "description": "desc",  
    "default": 1,
    "filter": "a>1",
    "group": "group1",
    "settings": { ... },    // 组件配置
}

以上JSON结构中各字段描述、说明:

  • type 控件类型(必要字段),支持设置为:"number"数值输入框, "string"字符串输入框, "selected"下拉框, "boolean"开关控件。

  • name 如果当前JSON结构是input字段的字段值,当没有设置label字段时,name为状态栏按钮点击触发后弹出的弹框中的控件标题。 如果当前JSON结构是group字段的字段值(数组结构)中的一个元素,name不作为控件标题使用,name字段用于表示控件输入内容的字段名。例如节选的一段group字段作为说明:

    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "下拉框1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "下拉框2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "下拉框3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "下拉框4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "选项A", value: "A"}, {text: "选项B", value: "B"}, {text: "选项C", value: "C"}, {text: "选项D", value: "D"}]
            }
        ]
    }
    

    根据这个片段可知,如果状态栏按钮触发交互,会弹出一个弹框,其中有4个控件,均为下拉框控件。设置好各个控件的选项,点击确定发送交互消息后,策略中的GetCommand函数就会收到cmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}。 JSON结构中name的值都作为返回交互信息的字段名,例如:comboBox1、comboBox2等。

  • label 用于设置控件的标题。

  • description 控件的描述信息。如果当前JSON结构是group字段的字段值(数组结构)中的一个元素,当没有设置label字段时,description为状态栏按钮点击触发后弹出的弹框中的控件标题。

  • default 控件的默认值。

  • filter 选择器,用来隐藏控件。不设置该字段表示不过滤(显示控件);设置该字段时,当表达式为真时不过滤(显示控件)。当表达式为假时过滤(不显示控件)

  • group 用来控制控件分组,可折叠。

  • settings 组件配置,控件有多种UI可以选择,用此选项可以进行具体设置。例如:

    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
    

    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时有效,表示选择器的选项数据格式:[“选项1”,“选项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时,目前只有默认复选框。

input JSON input字段配置状态栏按钮触发点击后弹出的弹框中的一个控件,group区别于input之处是配置一组控件,group中的元素与input字段值的数据结构一致,参考以上input字段相关描述说明。

group array

支持双语设置:

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // 这里default默认值设置0,表示{name:'xxx|yyy',value:0}选项中的value值
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeOne Chart-options