高级应用:扩展程序选项配置

扩展程序选项是由扩展程序开发者定义,供扩展程序使用者使用的功能配置项,可实现该扩展程序选项在不同工作空间进行个性化管控。例如,扩展程序开发者可以通过选项配置让扩展程序使用者自行管控SQL长度,实现扩展程序在不同工作空间限制的SQL长度不同。

背景信息

  • 扩展程序选项由扩展程序开发者在注册扩展程序时定义的该选项,供扩展程序使用者在具体工作空间下对该扩展程序选项进行设置。

    • 扩展程序开发者注册扩展程序,详情请参见:准备工作2:注册扩展程序

    • 扩展程序使用者在空间内使用扩展程序时,可在启用扩展程序前在下图位置配置选项。设置

  • 扩展程序开发者可通过APIGetOptionValueForProject获取扩展程序使用者(空间管理员)在具体工作空间内该选项的配置。

注意事项

扩展程序选项配置信息及相关文案由扩展程序开发者提供,平台不为内容风险负责。

支持的组件

目前选项配置支持的组件有七种:文本、单行输入框、多行输入框、单选选择下拉、多选选择下拉、复选和单选组件。如下图所示:组件

选项配置

扩展程序开发者需要在注册扩展程序时,通过JSON字符串方式在选项配置中定义选项。

{
    "type": "object",
    "properties": {

        "组件名称(不可重复)": {
        "type": "string",
            "title": "填写见下表",
            "x-decorator": "填写见《参数解析》表格内容",
            "x-component": "填写见《参数解析》表格内容",
            "x-decorator-props": {
                "tooltip": "描述"
            },
            "x-component-props": {
                "dataSource": "填写见《参数解析》表格内容",
                "mode": "multiple"
            }
        }

    }
}

您可以参考以下内容进行配置:

参数解析

字段

组件类型

title

文本

文本

单行输入框

单行输入框

多行输入框

多行输入框

单选选择下拉

单选选择下拉

多选选择下拉

多选选择下拉

复选

复选

单选

单选

x-decorator

文本

FormItem

单行输入框

FormItem

多行输入框

FormItem

单选选择下拉

FormItem

多选选择下拉

FormItem

复选

FormItem

单选

FormItem

x-component

文本

PreviewText.Input

单行输入框

Input

多行输入框

Input.TextArea

单选选择下拉

Select

多选选择下拉

Select

复选

Checkbox.Group

单选

Radio.Group

dataSource

文本

可不填

单行输入框

可不填

多行输入框

可不填

单选选择下拉

如有需要可填写:(其中每一对大括号都是唯一的,value和label不可重复。label对应的值为展示到界面的文案,value的值是文案对应的标记,自行定义即可。以下为示例代码:

[{
    "value": "10001",
    "label": "opt1"
}, {
    "value": "10001",
    "label": "opt1"
}]

多选选择下拉

如有需要可填写:(其中每一对大括号都是唯一的,value和label不可重复。label的值是展示到界面的文案,value的值是文案对应的标记,自行定义即可。以下为示例代码:

[{
    "value": "10001",
    "label": "opt1"
}, {
    "value": "10001",
    "label": "opt1"
}]

复选

如有需要可填写:(其中每一对大括号都是唯一的,value和label不可重复。label的值是展示到界面的文案,value的值是文案对应的标记,自行定义即可。以下为示例代码:

[{
    "value": "10001",
    "label": "opt1"
}, {
    "value": "10001",
    "label": "opt1"
}]

单选

如有需要可填写:(其中每一对大括号都是唯一的,value和label不可重复。label的值是展示到界面的文案,value的值是文案对应的标记,自行定义即可。以下为示例代码:

[{
    "value": "10001",
    "label": "opt1"
}, {
    "value": "10001",
    "label": "opt1"
}]

配置示例:设置SQL任务消耗的CU资源阈值

下图为设置SQL任务消耗的CU资源阈值配置过程与最终效果示例。

cu阈值

上述选项配置中的JSON配置如下。

{
    "type": "object",
    "properties": {
        "cuNumber": {
            "type": "string",
            "title": "Cu数阈值",
            "x-decorator": "FormItem",
            "x-component": "Input",
            "x-decorator-props": {
                "tooltip": "请输入SQL任务的消耗CU数阈值"
            }
        }
    }
}

配置示例:使用7类组件

下图为使用7类组件的配置过程与效果示例。

使用7类组件

上述选项配置中的JSON配置如下。

说明

如果您需要一次性使用七个组件,可复制以下JSON并修改部分数据即可。

{
    "type":"object",
    "properties":{

        "text":{
            "type":"string",
            "title":"文本",
            "x-decorator":"FormItem",
            "x-component":"PreviewText.Input",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "default":"这是文本信息"
        },
        "input":{
            "type":"string",
            "title":"单行输入框",
            "x-decorator":"FormItem",
            "x-component":"Input",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{

            },
            "default":"这是默认值"
        },


        "textarea":{
            "type":"string",
            "title":"多行输入框",
            "x-decorator":"FormItem",
            "x-component":"Input.TextArea",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{

            },
            "default":"这是默认值"
        },

        "select":{
            "type":"string",
            "title":"单选选择下拉",
            "x-decorator":"FormItem",
            "x-component":"Select",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{
                "dataSource":[
                    {
                        "value":"10001",
                        "label":"opt1"
                    },
                    {
                        "value":10002,
                        "label":"opt2"
                    },
                    {
                        "value":10003,
                        "label":"opt3",
                        "disabled":true
                    }
                ]
            },
            "default":"10001"
        },

        "selectmore":{
            "type":"string",
            "title":"多选选择下拉",
            "x-decorator":"FormItem",
            "x-component":"Select",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{
                "dataSource":[
                    {
                        "value":"10001",
                        "label":"opt1"
                    },
                    {
                        "value":10002,
                        "label":"opt2"
                    },
                    {
                        "value":10003,
                        "label":"opt3",
                        "disabled":true
                    }
                ],
                "mode":"multiple"
            },
            "default":["10001","10002"]
        },

        "checkbox":{
            "type":"array",
            "title":"复选",
            "x-decorator":"FormItem",
            "x-component":"Checkbox.Group",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{
                "dataSource":[
                    {
                        "value":"10001",
                        "label":"opt1"
                    },
                    {
                        "value":10002,
                        "label":"opt2"
                    },
                    {
                        "value":10003,
                        "label":"opt3",
                        "disabled":true
                    }
                ],
                "mode":"multiple"
            },
            "default":["10001","10002"]
        },

        "radio":{
            "type":"number",
            "title":"单选",
            "x-decorator":"FormItem",
            "x-component":"Radio.Group",
            "x-decorator-props":{
                "tooltip":"描述文件"
            },
            "x-component-props":{
                "dataSource":[
                    {
                        "value":"10001",
                        "label":"opt1"
                    },
                    {
                        "value":10002,
                        "label":"opt2"
                    },
                    {
                        "value":10003,
                        "label":"opt3",
                        "disabled":true
                    }
                ],
                "mode":"multiple"
            },
            "default":"10001"
        }

    }
}