表单配置API
表单配置通过代码注释定义,支持两种方式配置:
- 行内注释
[需要暴露参数的代码行] #@param [参数定义(JSON)]
- 顶部注释
#@param [参数定义(JSON)] [需要暴露参数的代码段]
为了保证表单能够正常解析代码,并与之交互。“[需要暴露参数的代码段]”格式必须为:
变量名 = { "xxx": "xxx" }
参数定义的JSON各字段如下:
表单项配置ParamConfig
表单项配置ParamConfig参数说明,如表1所示。
参数 |
说明 |
---|---|
type |
(Python)包括如下变量类型:
|
label |
表单的标签名。 |
reg |
正则匹配规则。可选参数,格式如下所示: {expression: string; subIndexes: number[]; paramIndexes: number[];}
默认值如下所示: {expression: "(\\s.+?\\s*=\\s*)(.*)(\\s*)", subIndexes: [1,2,3], paramIndexes: [2]} |
value |
表单初始值。 如果代码“"变量名="”后面有值,则此字段不生效。 |
options |
单选下拉选项列表。 数组类型,每条选项的格式可以是如下两种情况:
|
radios |
radios单选列表。 数值类型,配置格式同参数“options”。 |
required |
是否为必选。 如果取值为“true”,则表单会增加必填标识,即红色星号,并做空值校验。 |
show |
是否展示。 包括如下三种配置方式:
|
disabled |
是否禁用。 如果配置为“true”,则表单置灰不可操作。 配置方式与参数“show”相同,可以配置为“{"key":"use_regex","condition":"eq","value":false}”形式的对象。 |
validation |
表单校验规则。 数组类型,可配置多条。每条规则的格式为“{"rule":Validation枚举值,"param":any}”。详细的校验规则,在ValidationUtils中实现。 |
layout |
表单布局。格式如下所示: layout: { cols: number; colIndex: number; colspan: number;} 对应参数含义如下所示: |
asyncConfig |
异步获取数据的方式。 有些表单的选项来自于异步接口,可使用此字段获取,示例:{"type":"dataset"}。其中,“dataset”类型是组件预先定义好的类型,会直接调用后端服务获取数据集列表。 目前支持如下几种异步方式:
|
hyperParamType |
标识变量是否为超参及其类型。 标识为超参的变量,在转化为python脚本或发布服务时,会提取为脚本执行的入参。 |
multiple |
是否支持多选。 仅当“options”或“asyncConfig”参数配置时有效。 配置为“true”时,下拉框支持多选。 |
editable |
是否支持手工输入。 仅当“options”或“asyncConfig”参数配置时有效。 配置为“true”时,下拉框支持手工输入。 |
variableType |
标识变量类型。 其他表单可以通过类型引用该值。 |
dictProps |
当“type”取值为“dict”时,配置当前参数,定义字典的结构,详情请参见表2。 |
listProps |
当“type”取值为“list”时,配置当前参数,定义列表元素,详情请参见表3。 |
字典型表单dictProps配置
字典型表单dictProps配置参数说明,如表2所示。
参数 |
类型 |
说明 |
---|---|---|
inline |
boolean |
是否在同一行内布局。 配置为“true”时,字典所有条目的表单在同一行展示。 默认值:false |
showLabel |
boolean |
是否展示字典标题。 配置为“true”时,显示字典变量label,即顶层label,非字典条目label。字典条目label由items参数对应的字段控制。 默认值:false |
showLevel |
boolean |
是否展示字典层级样式。 配置为“true”时,表单将按照字典结构进行缩进。 默认值:false |
items |
{[key: string]: ParamConfig} |
字典条目。格式如下所示: {<字典的key名称>: ParamConfig(可以嵌套dict和list)} 默认值:{} |
数组型表单listProps配置
数组型表单listProps配置参数说明,如表3所示。
参数 |
类型 |
说明 |
---|---|---|
inline |
boolean |
是否在同一行内布局。 配置为“true”时,数组所有元素的表单在同一行展示。 默认值:false |
showLabel |
boolean |
是否展示数组标题。显示数组变量label。 默认值:false |
showItemLabel |
boolean |
是否展示数组元素的标题。显示数组元素label,默认为元素index,如果items中有配置每个元素label,则展示该值。 默认值:true |
showLevel |
boolean |
是否展示数组层级样式。 配置为“true”时,表单将按照数组结构进行缩进。 默认值:false |
flexible |
boolean |
是否支持数组条目的增加和删除操作。 如果配置为“true”,则展示增加删除按钮,支持动态增删数组元素。 默认值:false |
itemConfig |
ParamConfig |
数组条目的表单结构配置。 开发人员预先定义好的数组元素结构,格式为ParamConfig(可以嵌套dict和list)。 默认值:{} |
items |
ParamConfig[] |
数组的表单条目实例。 开发人员可以不用关注,从代码中获取数组值,根据值生成实例。 默认值:[] |