表单页设计

云控专属可视化开发工具

  • 全网独家定制
  • 数据私有化部署
  • 支持多级菜单管理
  • 多用户分级管理
  • 二次开发成本直降80%

表单 opt 配置

opt = {
  list: [...],     // 字段配置
  form: {...},     // 表单UI配置
  config: {...}    // 表单接口行为配置
}

字段列表 (list)

支持的组件类型(type)

input、textarea、radio、checkbox、select、inputSlot、datePicker、timePicker、colorPicker、switch、inputNumber、cascader、rate、slider、treeSelect、txt、title、tabs、flex、card、divider、button、table、component、upload、tinymce、grid、div

每项字段对象通用结构说明

{
  type: "input",                          // 组件类型,固定为 input
  name: "username",                       // 字段名,绑定数据用的 key
  control: {
    modelValue: "",                       // 绑定的输入值,双向绑定
    type: "text",                        // 输入框类型,如 text、password 等
    placeholder: "请输入用户名",            // 输入框占位提示文字
    maxlength: 20,                       // 最大输入长度
    minlength: 3,                        // 最小输入长度
    showWordLimit: true,                 // 是否显示字数统计
    clearable: true,                     // 是否显示清除按钮
    disabled: false,                     // 是否禁用输入框
    readonly: false,                     // 是否只读
    autocomplete: "off",                 // 浏览器自动完成功能,off 禁用
    autofocus: false,                    // 是否自动聚焦
    tabindex: "1",                      // tab 键顺序
    validateEvent: true,                 // 是否触发表单验证事件
    inputStyle: {                        // 输入框自定义样式
      color: "#333",                    // 字体颜色
      fontSize: "14px"                  // 字体大小
    },
    size: "default",                    // 输入框尺寸,可选 small、default、large
    options: [                         // 选项数组,常用于 select、radio、checkbox 等
      { label: "选项1", value: "1" }, // 选项 label 和 value
      { label: "选项2", value: "2" }
    ],
    multiple: false,                   // 是否多选,select 组件常用
    filterable: true,                  // 是否支持搜索筛选,select 组件常用
    rows: 4,                          // 多行文本框行数,textarea 专用
    resize: "vertical",               // textarea 是否允许调整大小及方向
    autosize: {                       // textarea 自动高度配置
      minRows: 2,                    // 最小行数
      maxRows: 6                     // 最大行数
    },
    buttonStyle: "outline",           // radio 按钮样式
    min: 0,                          // 输入数字类组件最小值,如 inputNumber、slider
    max: 100,                        // 最大值
    step: 1,                         // 步长
    format: "yyyy-MM-dd",             // 日期格式,datePicker 专用
    placeholderTime: "选择时间",       // 时间选择器占位提示
    disabledDate: (date) => date < new Date(),  // 禁用日期函数,禁止选择今天之前日期
    showAlpha: false,                 // 颜色选择器是否显示透明度
    activeColor: "#409EFF",           // 颜色选择器主题色
    checked: false,                   // 开关状态,switch 组件专用
    icon: "Check",                   // 按钮图标名
    loading: false,                  // 按钮加载状态
    text: "提交",                    // 按钮文本
    columns: [                       // 表格列配置
      { label: "姓名", prop: "name" },
      { label: "年龄", prop: "age" }
    ],
    data: [],                        // 表格数据
    style: {                        // 容器样式
      padding: "10px",              // 内边距
      backgroundColor: "#f5f5f5"   // 背景颜色
    },
    height: 300,                    // 富文本编辑器高度
    action: "/upload",              // 上传接口地址
    multipleUpload: false,          // 是否支持多文件上传
    showFileList: true              // 是否显示文件列表
  },
  formItem: {
    label: "确认密码",                // 表单标签
    rules: [
      {
        validator: (rule, value, callback) => {  // 自定义验证函数
          if (value === "") {
            callback(new Error("请输入确认密码"));  // 不符合规则时传入错误信息
          } else {
            const password = getform1ValueByName("password");  // 获取其他字段值进行校验
            if (password === value) {
              callback();                            // 校验通过
            } else {
              callback(new Error("两次密码输入不一致"));  // 校验失败错误提示
            }
          }
        },
        trigger: "blur"                      // 触发校验的时机
      }
    ]
  },
  customRules: [
    {
      type: "required",                   // 必填规则类型
      message: "必填项",                   // 提示信息
      trigger: "blur"                     // 触发校验时机
    }
  ],
  config: {
    optionsType: 1,                      // 自定义配置项类型
    optionsFun: "demo/options",          // 远程接口或本地方法名
    method: "get",                      // 请求方法
    linkage: "name1",                   // 关联的其他组件字段名
    before: (params, { type, route, model }) => {  // 请求前钩子,修改参数
      console.log(type);
      return params;
    },
    after: (res, success, type) => {    // 请求后钩子,处理结果
      console.log(type, res);
      return res;
    }
  }
}

根级属性

属性名说明类型是否必填默认值示例值
type组件类型,固定字符串string"input"
name绑定数据字段名string"username"

control 对象属性

属性名说明类型是否必填默认值示例值
modelValue绑定的输入值,通常双向绑定string | number""""
type输入框类型,如 text、passwordstring"text""text"
placeholder输入框占位提示文字string"""请输入用户名"
maxlength最大输入长度number20
minlength最小输入长度number3
showWordLimit是否显示字数统计booleanfalsetrue
clearable是否显示清除按钮booleanfalsetrue
disabled是否禁用输入框booleanfalsefalse
readonly是否只读booleanfalsefalse
autocomplete浏览器自动完成功能string"off""off"
autofocus是否自动聚焦booleanfalsefalse
tabindextab 键顺序string | number"1"
validateEvent是否触发表单验证事件booleantruetrue
inputStyle输入框自定义样式对象object{}{ color: "#333", fontSize: "14px" }
size输入框尺寸,支持 small/default/largestring"default""default"
options选项数组(常用于 select、radio 等)Array<{ label: string; value: any }>[][ { label: "选项1", value: "1" }, { label: "选项2", value: "2" } ]
multiple是否多选booleanfalsefalse
filterable是否支持搜索筛选booleanfalsetrue
rows多行文本框行数,textarea 专用number24
resizetextarea 是否允许调整大小及方向string"none""vertical"
autosizetextarea 自动高度配置objectnull{ minRows: 2, maxRows: 6 }
buttonStyleradio 按钮样式string"outline""outline"
min数字类组件最小值number00
max数字类组件最大值number100100
step数字类组件步长number11
format日期格式,datePicker 专用string"""yyyy-MM-dd"
placeholderTime时间选择器占位提示string"""选择时间"
disabledDate禁用日期函数functionnull(date) => date < new Date()
showAlpha颜色选择器是否显示透明度booleanfalsefalse
activeColor颜色选择器主题色string"#409EFF""#409EFF"
checked开关状态,switch 组件专用booleanfalsefalse
icon按钮图标名string"""Check"
loading按钮加载状态booleanfalsefalse
text按钮文本string"""提交"
columns表格列配置Array<{ label: string; prop: string }>[][ { label: "姓名", prop: "name" }, { label: "年龄", prop: "age" } ]
data表格数据Array[][]
style容器样式object{}{ padding: "10px", backgroundColor: "#f5f5f5" }
height富文本编辑器高度number300300
action上传接口地址string"""/upload"
multipleUpload是否支持多文件上传booleanfalsefalse
showFileList是否显示文件列表booleantruetrue

formItem 对象属性

属性名说明类型是否必填默认值示例值
label表单标签文字string"""确认密码"
rules校验规则数组Array见自定义验证函数示例

示例校验函数:

{
  validator: (rule, value, callback) => {
    if (value === "") {
      callback(new Error("请输入确认密码"));
    } else {
      const password = getform1ValueByName("password");
      if (password === value) {
        callback();
      } else {
        callback(new Error("两次密码输入不一致"));
      }
    }
  },
  trigger: "blur"
}

customRules 数组元素属性

属性名说明类型是否必填默认值示例值
type规则类型string"required"
message规则提示信息string"必填项"
trigger触发校验时机string"blur"

config 对象属性

属性名说明类型是否必填默认值示例值
optionsType自定义配置项类型number1
optionsFun远程接口或本地方法名string"demo/options"
method请求方法string"get"
linkage关联其他组件字段名string"name1"
before请求前钩子函数,修改请求参数function(params, { type, route, model }) => { return params; }
after请求后钩子函数,处理响应数据function(res, success, type) => { return res; }

各组件详细配置说明

1. input(单行文本)

作用

用于输入标题、名称、链接、UID 等简单字符串信息。

示例

{
  "type": "input",
  "name": "username",
  "control": {
    "modelValue": "",
    "type": "text",
    "placeholder": "请输入用户名",
    "maxlength": 20,
    "minlength": 3,
    "showWordLimit": true,
    "clearable": true,
    "disabled": false,
    "readonly": false,
    "autocomplete": "off",
    "autofocus": false,
    "tabindex": "1",
    "validateEvent": true,
    "inputStyle": {},
    "size": "default"
  },
  "formItem": {
    "label": "用户名",
    "rules": [
      {
        "validator": (rule, value, callback) => {
          if (!/^[a-zA-Z]/.test(value)) {
            callback(new Error("必须以字母开头"));
          } else {
            callback();
          }
        },
        "trigger": "blur"
      }
    ]
  },
  "customRules": [
    {
      "required": true,
      "message": "请输入用户名",
      "trigger": "blur"
    },
    {
      "min": 3,
      "max": 20,
      "message": "长度在 3 到 20 个字符",
      "trigger": "blur"
    }
  ],
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "input"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置,包含标签和验证规则
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString/Number""绑定的输入值
typeString"text"输入框类型,如 text、password 等
placeholderString""输入框占位提示文字
maxlengthNumber最大输入长度
minlengthNumber最小输入长度
showWordLimitBooleanfalse是否显示字数统计
clearableBooleanfalse是否显示清除按钮
disabledBooleanfalse是否禁用输入框
readonlyBooleanfalse是否只读
autocompleteString"off"浏览器自动完成功能设置
autofocusBooleanfalse是否自动聚焦
tabindexString/Number输入框的 tab 键顺序
validateEventBooleantrue是否触发表单验证事件
inputStyleObject{}输入框自定义样式对象
sizeString"default"输入框尺寸,支持 "small"、"default"、"large"

formItem 对象属性说明

属性名类型默认值说明
labelString""表单字段标签文字
rulesArray内置校验规则数组

customRules 数组内对象属性说明

属性名类型说明
validatorFunction自定义校验函数,参数为 (rule, value, callback)
triggerString触发时机,常用 "blur" 或 "change"

2. textarea(多行文本)

作用

用于输入多行文本信息,如备注、评论、详细描述等。

示例

{
  "type": "textarea",
  "name": "description",
  "control": {
    "modelValue": "",
    "placeholder": "请输入内容",
    "maxlength": 500,
    "minlength": 5,
    "rows": 4,
    "showWordLimit": true,
    "clearable": true,
    "disabled": false,
    "readonly": false,
    "resize": "vertical",
    "autofocus": false,
    "validateEvent": true,
    "inputStyle": {},
    "size": "default"
  },
  "formItem": {
    "label": "描述",
    "rules": []
  },
  "customRules": [
    {
      "required": true,
      "message": "请输入描述",
      "trigger": "blur"
    }
  ],
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "textarea"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置,包含标签和验证规则
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString""绑定的输入值
placeholderString""输入框占位提示文字
maxlengthNumber最大输入长度
minlengthNumber最小输入长度
rowsNumber2显示行数
showWordLimitBooleanfalse是否显示字数统计
clearableBooleanfalse是否显示清除按钮
disabledBooleanfalse是否禁用输入框
readonlyBooleanfalse是否只读
resizeString"none"是否允许调整大小,支持 "none"、"both"、"horizontal"、"vertical"
autofocusBooleanfalse是否自动聚焦
validateEventBooleantrue是否触发表单验证事件
inputStyleObject{}输入框自定义样式对象
sizeString"default"输入框尺寸,支持 "small"、"default"、"large"

formItem、customRules、config 与 input 一致

3. radio(单选框)

作用

用于在多个选项中选择一个。

示例

{
  "type": "radio",
  "name": "gender",
  "control": {
    "modelValue": "male",
    "options": [
      { "label": "", "value": "male" },
      { "label": "", "value": "female" }
    ],
    "disabled": false,
    "size": "default",
    "border": false
  },
  "formItem": {
    "label": "性别",
    "rules": [{ "required": true, "message": "请选择性别", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "radio"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString/Number绑定的选中值
optionsArray选项数组,包含 label 和 value
disabledBooleanfalse是否禁用
sizeString"default"尺寸,支持 "small"、"default"、"large"
borderBooleanfalse是否显示边框

formItem、customRules、config 与 input 一致

4. checkbox(多选框)

作用

用于多选操作,用户可选择多个选项。

示例

{
  "type": "checkbox",
  "name": "hobbies",
  "control": {
    "modelValue": ["reading", "traveling"],
    "options": [
      { "label": "阅读", "value": "reading" },
      { "label": "旅行", "value": "traveling" },
      { "label": "运动", "value": "sports" }
    ],
    "disabled": false,
    "size": "default",
    "min": 1,
    "max": 3
  },
  "formItem": {
    "label": "兴趣爱好",
    "rules": [{ "required": true, "type": "array", "min": 1, "message": "请选择至少一个爱好", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "checkbox"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueArray绑定的选中值数组
optionsArray选项数组,包含 label 和 value
disabledBooleanfalse是否禁用
sizeString"default"尺寸
minNumber最小选中数量
maxNumber最大选中数量

formItem、customRules、config 与 input 一致

5. select(下拉选择)

作用

用于从下拉列表中选择一个或多个值。

示例

{
  "type": "select",
  "name": "country",
  "control": {
    "modelValue": "",
    "options": [
      { "label": "中国", "value": "cn" },
      { "label": "美国", "value": "us" },
      { "label": "英国", "value": "uk" }
    ],
    "multiple": false,
    "disabled": false,
    "clearable": true,
    "placeholder": "请选择国家",
    "filterable": true,
    "size": "default"
  },
  "formItem": {
    "label": "国家",
    "rules": [{ "required": true, "message": "请选择国家", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "select"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString/Array""绑定的值,multiple 时为数组
optionsArray选项数组,包含 label 和 value
multipleBooleanfalse是否多选
disabledBooleanfalse是否禁用
clearableBooleanfalse是否显示清除按钮
placeholderString""占位文字
filterableBooleanfalse是否支持搜索过滤
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

6. inputSlot(输入框插槽版)

作用

输入框,支持自定义插槽扩展内容。

示例

{
  "type": "inputSlot",
  "name": "customInput",
  "control": {
    "modelValue": "",
    "placeholder": "请输入",
    "clearable": true,
    "disabled": false,
    "readonly": false,
    "size": "default"
  },
  "formItem": {
    "label": "自定义输入框"
  },
  "config": {
    "prefixSlot": "<template>...</template>",
    "suffixSlot": "<template>...</template>"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "inputSlot"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject插槽模板相关配置

control 对象属性说明

属性名类型默认值说明
modelValueString""绑定的输入值
placeholderString""占位文字
clearableBooleanfalse是否显示清除按钮
disabledBooleanfalse是否禁用
readonlyBooleanfalse是否只读
sizeString"default"尺寸

config 对象属性说明

属性名类型说明
prefixSlotString输入框前置插槽模板字符串
suffixSlotString输入框后置插槽模板字符串

7. datePicker(日期选择)

作用

选择日期或日期范围。

示例

{
  "type": "datePicker",
  "name": "birthday",
  "control": {
    "modelValue": null,
    "type": "date",
    "format": "yyyy-MM-dd",
    "valueFormat": "yyyy-MM-dd",
    "placeholder": "选择日期",
    "disabled": false,
    "clearable": true,
    "editable": true,
    "range": false,
    "size": "default"
  },
  "formItem": {
    "label": "生日",
    "rules": [{ "required": true, "message": "请选择日期", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "datePicker"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueDate/String/Arraynull绑定值,range 模式为数组
typeString"date"类型,如 "date", "datetime", "daterange", "datetimerange"
formatString""展示格式
valueFormatString""绑定值格式
placeholderString""占位文字
disabledBooleanfalse是否禁用
clearableBooleanfalse是否显示清除按钮
editableBooleantrue输入框是否可编辑
rangeBooleanfalse是否为范围选择
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

8. timePicker(时间选择)

作用

选择时间或时间范围。

示例

{
  "type": "timePicker",
  "name": "meetingTime",
  "control": {
    "modelValue": null,
    "isRange": false,
    "format": "HH:mm:ss",
    "valueFormat": "HH:mm:ss",
    "placeholder": "选择时间",
    "disabled": false,
    "clearable": true,
    "size": "default"
  },
  "formItem": {
    "label": "会议时间",
    "rules": [{ "required": true, "message": "请选择时间", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "timePicker"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString/Arraynull绑定值,isRange 为 true 时为数组
isRangeBooleanfalse是否时间范围选择
formatString"HH:mm:ss"显示格式
valueFormatString"HH:mm:ss"绑定值格式
placeholderString""占位文字
disabledBooleanfalse是否禁用
clearableBooleanfalse是否显示清除按钮
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

9. colorPicker(颜色选择)

作用

用于选择颜色值。

示例

{
  "type": "colorPicker",
  "name": "themeColor",
  "control": {
    "modelValue": "#409EFF",
    "disabled": false,
    "showAlpha": false,
    "size": "default"
  },
  "formItem": {
    "label": "主题颜色"
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "colorPicker"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueString""绑定的颜色值,支持 HEX、RGBA等格式
disabledBooleanfalse是否禁用
showAlphaBooleanfalse是否显示透明度选择
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

10. switch(开关)

作用

用于切换开/关状态。

示例

{
  "type": "switch",
  "name": "isActive",
  "control": {
    "modelValue": true,
    "disabled": false,
    "activeText": "",
    "inactiveText": "",
    "activeColor": "#409EFF",
    "inactiveColor": "#C0CCDA"
  },
  "formItem": {
    "label": "是否激活"
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "switch"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueBooleanfalse绑定的开关状态
disabledBooleanfalse是否禁用
activeTextString""开启时显示文字
inactiveTextString""关闭时显示文字
activeColorString"#409EFF"开启时颜色
inactiveColorString"#C0CCDA"关闭时颜色

formItem、customRules、config 与 input 一致

11. inputNumber(数字输入)

作用

用于输入数字,可以设置范围、步进等。

示例

{
  "type": "inputNumber",
  "name": "age",
  "control": {
    "modelValue": 18,
    "min": 0,
    "max": 120,
    "step": 1,
    "disabled": false,
    "size": "default"
  },
  "formItem": {
    "label": "年龄",
    "rules": [{ "type": "number", "min": 0, "max": 120, "message": "年龄范围为0-120", "trigger": "blur" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "inputNumber"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueNumber0绑定的数值
minNumber最小值
maxNumber最大值
stepNumber1步进值
disabledBooleanfalse是否禁用
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

12. cascader(级联选择)

作用

用于选择多级分类数据。

示例

{
  "type": "cascader",
  "name": "address",
  "control": {
    "modelValue": [],
    "options": [
      {
        "label": "浙江",
        "value": "zj",
        "children": [
          { "label": "杭州", "value": "hz" },
          { "label": "宁波", "value": "nb" }
        ]
      },
      {
        "label": "江苏",
        "value": "js",
        "children": [
          { "label": "南京", "value": "nj" },
          { "label": "苏州", "value": "sz" }
        ]
      }
    ],
    "disabled": false,
    "clearable": true,
    "placeholder": "请选择地址",
    "size": "default"
  },
  "formItem": {
    "label": "地址",
    "rules": [{ "required": true, "message": "请选择地址", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "cascader"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueArray绑定的选中值数组
optionsArray级联选项数据,包含 label、value、children
disabledBooleanfalse是否禁用
clearableBooleanfalse是否显示清除按钮
placeholderString""占位文字
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

13. rate(评分)

作用

用于评分选择,通常显示星星。

示例

{
  "type": "rate",
  "name": "score",
  "control": {
    "modelValue": 3,
    "max": 5,
    "disabled": false,
    "allowHalf": true,
    "showText": false,
    "showScore": false,
    "size": "default"
  },
  "formItem": {
    "label": "评分",
    "rules": [{ "required": true, "message": "请评分", "trigger": "change" }]
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "rate"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueNumber0当前评分
maxNumber5最大分数
disabledBooleanfalse是否禁用
allowHalfBooleanfalse是否允许半星评分
showTextBooleanfalse是否显示文本说明
showScoreBooleanfalse是否显示数字评分
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

14. slider(滑动条)

作用

用于选择数值范围或单个数值。

示例

{
  "type": "slider",
  "name": "volume",
  "control": {
    "modelValue": 50,
    "min": 0,
    "max": 100,
    "step": 1,
    "disabled": false,
    "range": false,
    "showTooltip": true,
    "size": "default"
  },
  "formItem": {
    "label": "音量"
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "slider"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueNumber/Array0当前数值,range 为 true 时为数组
minNumber0最小值
maxNumber100最大值
stepNumber1步长
disabledBooleanfalse是否禁用
rangeBooleanfalse是否范围选择
showTooltipBooleantrue是否显示提示
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

15. treeSelect(树形选择)

作用

用于选择树形结构中的某个或多个节点。

示例

{
  "type": "treeSelect",
  "name": "category",
  "control": {
    "modelValue": [],
    "treeData": [
      {
        "label": "电子产品",
        "id": 1,
        "children": [
          { "label": "手机", "id": 2 },
          { "label": "电脑", "id": 3 }
        ]
      }
    ],
    "multiple": true,
    "disabled": false,
    "clearable": true,
    "placeholder": "请选择类别",
    "size": "default"
  },
  "formItem": {
    "label": "类别"
  },
  "config": {}
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "treeSelect"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置
customRulesArray自定义验证规则函数数组
configObject组件额外扩展配置

control 对象属性说明

属性名类型默认值说明
modelValueArray/String绑定值,multiple 为 true 时为数组
treeDataArray树数据,包含 label、id、children
multipleBooleanfalse是否多选
disabledBooleanfalse是否禁用
clearableBooleanfalse是否显示清除按钮
placeholderString""占位文字
sizeString"default"组件尺寸

formItem、customRules、config 与 input 一致

16. txt(文本显示)

作用

用于显示只读文本。

示例

{
  "type": "txt",
  "name": "descriptionText",
  "control": {
    "modelValue": "这是只读文本"
  },
  "formItem": {
    "label": "说明"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "txt"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置

control 对象属性说明

属性名类型默认值说明
modelValueString""显示的文本内容

17. title(标题)

作用

用于显示标题文本。

示例

{
  "type": "title",
  "name": "pageTitle",
  "control": {
    "modelValue": "用户管理"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "title"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
modelValueString""标题文本内容

18. tabs(标签页)

作用

用于创建标签页切换。

示例

{
  "type": "tabs",
  "name": "mainTabs",
  "control": {
    "modelValue": "tab1",
    "tabs": [
      { "label": "标签1", "name": "tab1" },
      { "label": "标签2", "name": "tab2" }
    ]
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "tabs"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
modelValueString""当前激活的标签名
tabsArray标签数组,包含 label 和 name

19. flex(弹性布局)

作用

用于布局弹性容器。

示例

{
  "type": "flex",
  "name": "flexContainer",
  "control": {
    "justify": "start",
    "align": "center",
    "direction": "row",
    "wrap": "nowrap"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "flex"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
justifyString"start"主轴对齐方式
alignString"stretch"侧轴对齐方式
directionString"row"主轴方向
wrapString"nowrap"是否换行

20. card(卡片)

作用

用于显示卡片容器。

示例

{
  "type": "card",
  "name": "userCard",
  "control": {
    "header": "用户信息",
    "bordered": true,
    "shadow": true
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "card"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
headerString""卡片头部标题
borderedBooleanfalse是否有边框
shadowBooleanfalse是否有阴影

21. divider(分割线)

作用

用于分隔内容。

示例

{
  "type": "divider",
  "name": "lineDivider",
  "control": {
    "direction": "horizontal",
    "contentPosition": "center"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "divider"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
directionString"horizontal"分割线方向,"horizontal" 或 "vertical"
contentPositionString"center"内容位置,"left"、"center" 或 "right"

22. button(按钮)

作用

用于触发操作。

示例

{
  "type": "button",
  "name": "submitBtn",
  "control": {
    "text": "提交",
    "type": "primary",
    "size": "default",
    "disabled": false,
    "loading": false,
    "icon": "Check"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "button"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
textString""按钮显示文本
typeString"default"按钮类型,如 "primary"、"success" 等
sizeString"default"按钮尺寸
disabledBooleanfalse是否禁用
loadingBooleanfalse是否加载中
iconString""按钮图标名称

23. table(表格)

作用

用于显示表格数据。

示例

{
  "type": "table",
  "name": "userTable",
  "control": {
    "columns": [
      { "label": "姓名", "prop": "name" },
      { "label": "年龄", "prop": "age" }
    ],
    "data": []
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "table"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
columnsArray表格列配置,包含 label 和 prop
dataArray表格数据

24. component(自定义组件)

作用

用于嵌入自定义组件。

示例

{
  "type": "component",
  "name": "customComp",
  "control": {
    "componentName": "MyComponent",
    "props": {}
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "component"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
componentNameString""自定义组件名称
propsObject{}传递给自定义组件的属性

25. upload(上传)

作用

用于文件上传。

示例

{
  "type": "upload",
  "name": "avatar",
  "control": {
    "action": "/upload",
    "multiple": false,
    "accept": "image/*",
    "fileList": [],
    "disabled": false,
    "showFileList": true
  },
  "formItem": {
    "label": "头像上传"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "upload"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置

control 对象属性说明

属性名类型默认值说明
actionString""上传接口地址
multipleBooleanfalse是否支持多文件上传
acceptString""接受的文件类型
fileListArray已上传文件列表
disabledBooleanfalse是否禁用
showFileListBooleantrue是否显示文件列表

formItem、customRules、config 与 input 一致

26. tinymce(富文本编辑器)

作用

用于编辑富文本内容。

示例

{
  "type": "tinymce",
  "name": "content",
  "control": {
    "modelValue": "",
    "disabled": false,
    "height": 300
  },
  "formItem": {
    "label": "内容"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "tinymce"
nameString字段名,数据绑定的键名
controlObject组件控制属性
formItemObject表单项相关配置

control 对象属性说明

属性名类型默认值说明
modelValueString""富文本内容
disabledBooleanfalse是否禁用编辑
heightNumber300编辑器高度(像素)

27. grid(网格布局)

作用

用于布局网格容器。

示例

{
  "type": "grid",
  "name": "gridLayout",
  "control": {
    "cols": 4,
    "gutter": 10,
    "justify": "start",
    "align": "top"
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "grid"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
colsNumber24列数
gutterNumber0栅格间距
justifyString"start"主轴对齐方式
alignString"top"侧轴对齐方式

28. div(容器)

作用

用于包裹内容的容器。

示例

{
  "type": "div",
  "name": "contentWrapper",
  "control": {
    "style": {
      "padding": "10px",
      "backgroundColor": "#f5f5f5"
    }
  }
}

根级属性说明

属性名类型必填说明
typeString组件类型,固定为 "div"
nameString字段名,数据绑定的键名
controlObject组件控制属性

control 对象属性说明

属性名类型默认值说明
styleObject{}容器自定义样式

表单UI配置 (form)

form: {
  size: "default" | "small" | "large",
  labelWidth: string // e.g. "100px"
}

接口行为配置 (config)

config: {
  submitCancel: boolean, // 是否显示提交/取消
  submitUrl: string,     // 新增接口
  editUrl: string,       // 编辑接口
  requestUrl: string     // 查看详情接口
}

⚠️ 注意: 接口请求可能会涉及跨域问题。例如:当前页面运行在云控官网后台域名(如 http://cloud.jsdevhub.com),而接口地址是 http://47.94.105.29:66,会因浏览器同源策略被拦截。解决方式建议:后端开启 CORS 并允许跨域

选项数据格式要求

适用于 select / selectPlus 等组件:

[
  { "id": 1, "label": "选项 A" },
  { "id": 2, "label": "选项 B" }
]

需要配合:optionsType: 1、optionsFun、value、label 等字段使用。

完整配置示例

opt = { 
  list: [
  {
    type: "input",
    control:
    {
      modelValue: "",
      placeholder: "请输入标题"
    },
    config:
    {},
    name: "label",
    formItem:
    {
      label: "标题"
    }
  },
  
  {
    type: "textarea",
    control:
    {
      modelValue: ""
    },
    config:
    {},
    name: "textarea",
    formItem:
    {
      label: "多行文本"
    }
  },
    {
    type: "inputNumber",
    control:
    {
      modelValue: 0
    },
    config:
    {},
    name: "inputNumber",
    formItem:
    {
      label: "计数器"
    }
  },
    {
    type: "rate",
    control:
    {
      modelValue: 0
    },
    config:
    {},
    name: "rate",
    formItem:
    {
      label: "评分"
    }
  },
  {
    type: "slider",
    control:
    {
      modelValue: 0
    },
    config:
    {},
    name: "slider",
    formItem:
    {
      label: "滑块"
    }
  },

  {
    type: "switch",
    control:
    {
      modelValue: false,
      activeValue: 1,
      inactiveValue: 0
    },
    config:
    {},
    name: "switch",
    formItem:
    {
      label: "开关"
    }
  },
   {
    type: "datePicker",
    control:
    {
      modelValue: "",
      type: "datetime"
    },
    config:
    {},
    name: "datePicker",
    formItem:
    {
      label: "日期选择器"
    }
  },
  {
    type: "timePicker",
    control:
    {
      modelValue: ""
    },
    config:
    {},
    name: "timePicker",
    formItem:
    {
      label: "时间选择器"
    }
  },
    {
    type: "colorPicker",
    control:
    {
      modelValue: ""
    },
    config:
    {},
    name: "colorPicker",
    formItem:
    {
      label: "取色器"
    }
  },
    {
    type: "upload",
    control:
    {
      modelValue: "",
      action: "http://47.94.105.29:66/api/upload",
      multiple: true,
      limit: 2,
      listType: "picture-card"
    },
    config:
    {
      tip: "",
      btnText: ""
    },
    name: "upload",
    formItem:
    {
      label: "图片文件上传"
    }
  },
    {
    type: "select",
    control:
    {
      modelValue: "",
      appendToBody: true,
      placeholder: "请选择任务类型"
    },
    options: [],
    config:
    {
      optionsType: 2,
      optionsFun: ""
    },
    name: "task_type_id",
    formItem:
    {
      label: "任务类型"
    }
  },
  {
    type: "select",
    control:
    {
      modelValue: "",
      appendToBody: true
    },
    options: [],
    config:
    {
      optionsType: 1,
      optionsFun: "http://180.76.145.80/api/getDeviceList",
      method: "post",
      value: "id"
    },
    name: "device_id",
    formItem:
    {
      label: "设备"
    }
  },
  {
    type: "select",
    control:
    {
      modelValue: "",
      appendToBody: true
    },
    options: [],
    config:
    {
      optionsType: 1,
      optionsFun: "http://180.76.145.80/api/getUserList",
      method: "post",
      value: "id"
    },
    name: "user_id",
    formItem:
    {
      label: "用户"
    }
  },
  {
    type: "selectPlus",
    control:
    {
      modelValue: "",
      appendToBody: true,
      valueKey: "id",
      filterable: true,
      props:
      {
        label: "label",
        value: "id"
      }
    },
    options: [],
    config:
    {
      optionsType: 1,
      optionsFun: "http://47.94.105.29:66/api/DataListCaseCategoryList",
      method: "post",
      addUrl: "http://47.94.105.29:66/api/addDataListCaseCategory",
      editUrl: "http://47.94.105.29:66/api/editDataListCaseCategory",
      deleteUrl: "http://47.94.105.29:66/api/deleteDataListCaseCategory"
    },
    name: "category_id",
    formItem:
    {
      label: "分类"
    }
  },
  {
    type: "input",
    control:
    {
      modelValue: "",
      placeholder: "请输入链接"
    },
    config:
    {},
    name: "link",
    formItem:
    {
      label: "链接"
    }
  },
  {
    type: "input",
    control:
    {
      modelValue: "",
      placeholder: "请输入uid"
    },
    config:
    {},
    name: "uid",
    formItem:
    {
      label: "UID"
    }
  },
  {
    type: "upload",
    control:
    {
      modelValue: "",
      action: "http://47.94.105.29:66/api/upload"
    },
    config:
    {},
    name: "play",
    formItem:
    {
      label: "播放"
    }
  },
  {
    type: "upload",
    control:
    {
      modelValue: "",
      action: "http://47.94.105.29:66/api/upload"
    },
    config:
    {},
    name: "download",
    formItem:
    {
      label: "下载链接"
    }
  },
  {
    type: "upload",
    control:
    {
      modelValue: "",
      action: "http://47.94.105.29:66/api/upload",
      multiple: true,
      limit: 2,
      listType: "picture-card"
    },
    config:
    {},
    name: "image",
    formItem:
    {
      label: "图片/文件"
    }
  },
  {
    type: "upload",
    control:
    {
      modelValue: "",
      action: "http://47.94.105.29:66/api/upload",
      limit: 1,
      drag: true
    },
    config:
    {},
    name: "video",
    formItem:
    {
      label: "视频文件"
    }
  },
  {
    type: "input",
    control:
    {
      modelValue: ""
    },
    config:
    {},
    name: "copy",
    formItem:
    {
      label: "复制文本"
    }
  }],
  form:
  {
    size: "default",
    labelWidth: "100px"
  },
  config:
  {
    submitCancel: true,
    submitUrl: "http://47.94.105.29:66/api/addDataListCase",
    editUrl: "http://47.94.105.29:66/api/editDataListCase",
    requestUrl: "http://47.94.105.29:66/api/getDataListCase"
  }
}