表单页设计
云控专属可视化开发工具
- 全网独家定制
- 数据私有化部署
- 支持多级菜单管理
- 多用户分级管理
- 二次开发成本直降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、password | string | 否 | "text" | "text" |
| placeholder | 输入框占位提示文字 | string | 否 | "" | "请输入用户名" |
| maxlength | 最大输入长度 | number | 否 | — | 20 |
| minlength | 最小输入长度 | number | 否 | — | 3 |
| showWordLimit | 是否显示字数统计 | boolean | 否 | false | true |
| clearable | 是否显示清除按钮 | boolean | 否 | false | true |
| disabled | 是否禁用输入框 | boolean | 否 | false | false |
| readonly | 是否只读 | boolean | 否 | false | false |
| autocomplete | 浏览器自动完成功能 | string | 否 | "off" | "off" |
| autofocus | 是否自动聚焦 | boolean | 否 | false | false |
| tabindex | tab 键顺序 | string | number | 否 | — | "1" |
| validateEvent | 是否触发表单验证事件 | boolean | 否 | true | true |
| inputStyle | 输入框自定义样式对象 | object | 否 | {} | { color: "#333", fontSize: "14px" } |
| size | 输入框尺寸,支持 small/default/large | string | 否 | "default" | "default" |
| options | 选项数组(常用于 select、radio 等) | Array<{ label: string; value: any }> | 否 | [] | [ { label: "选项1", value: "1" }, { label: "选项2", value: "2" } ] |
| multiple | 是否多选 | boolean | 否 | false | false |
| filterable | 是否支持搜索筛选 | boolean | 否 | false | true |
| rows | 多行文本框行数,textarea 专用 | number | 否 | 2 | 4 |
| resize | textarea 是否允许调整大小及方向 | string | 否 | "none" | "vertical" |
| autosize | textarea 自动高度配置 | object | 否 | null | { minRows: 2, maxRows: 6 } |
| buttonStyle | radio 按钮样式 | string | 否 | "outline" | "outline" |
| min | 数字类组件最小值 | number | 否 | 0 | 0 |
| max | 数字类组件最大值 | number | 否 | 100 | 100 |
| step | 数字类组件步长 | number | 否 | 1 | 1 |
| format | 日期格式,datePicker 专用 | string | 否 | "" | "yyyy-MM-dd" |
| placeholderTime | 时间选择器占位提示 | string | 否 | "" | "选择时间" |
| disabledDate | 禁用日期函数 | function | 否 | null | (date) => date < new Date() |
| showAlpha | 颜色选择器是否显示透明度 | boolean | 否 | false | false |
| activeColor | 颜色选择器主题色 | string | 否 | "#409EFF" | "#409EFF" |
| checked | 开关状态,switch 组件专用 | boolean | 否 | false | false |
| icon | 按钮图标名 | string | 否 | "" | "Check" |
| loading | 按钮加载状态 | boolean | 否 | false | false |
| text | 按钮文本 | string | 否 | "" | "提交" |
| columns | 表格列配置 | Array<{ label: string; prop: string }> | 否 | [] | [ { label: "姓名", prop: "name" }, { label: "年龄", prop: "age" } ] |
| data | 表格数据 | Array | 否 | [] | [] |
| style | 容器样式 | object | 否 | {} | { padding: "10px", backgroundColor: "#f5f5f5" } |
| height | 富文本编辑器高度 | number | 否 | 300 | 300 |
| action | 上传接口地址 | string | 否 | "" | "/upload" |
| multipleUpload | 是否支持多文件上传 | boolean | 否 | false | false |
| showFileList | 是否显示文件列表 | boolean | 否 | true | true |
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 | 自定义配置项类型 | number | 否 | — | 1 |
| 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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "input" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置,包含标签和验证规则 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String/Number | "" | 绑定的输入值 |
| type | String | "text" | 输入框类型,如 text、password 等 |
| placeholder | String | "" | 输入框占位提示文字 |
| maxlength | Number | 无 | 最大输入长度 |
| minlength | Number | 无 | 最小输入长度 |
| showWordLimit | Boolean | false | 是否显示字数统计 |
| clearable | Boolean | false | 是否显示清除按钮 |
| disabled | Boolean | false | 是否禁用输入框 |
| readonly | Boolean | false | 是否只读 |
| autocomplete | String | "off" | 浏览器自动完成功能设置 |
| autofocus | Boolean | false | 是否自动聚焦 |
| tabindex | String/Number | 无 | 输入框的 tab 键顺序 |
| validateEvent | Boolean | true | 是否触发表单验证事件 |
| inputStyle | Object | {} | 输入框自定义样式对象 |
| size | String | "default" | 输入框尺寸,支持 "small"、"default"、"large" |
formItem 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| label | String | "" | 表单字段标签文字 |
| rules | Array | 内置校验规则数组 |
customRules 数组内对象属性说明
| 属性名 | 类型 | 说明 |
|---|---|---|
| validator | Function | 自定义校验函数,参数为 (rule, value, callback) |
| trigger | String | 触发时机,常用 "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "textarea" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置,包含标签和验证规则 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 绑定的输入值 |
| placeholder | String | "" | 输入框占位提示文字 |
| maxlength | Number | 无 | 最大输入长度 |
| minlength | Number | 无 | 最小输入长度 |
| rows | Number | 2 | 显示行数 |
| showWordLimit | Boolean | false | 是否显示字数统计 |
| clearable | Boolean | false | 是否显示清除按钮 |
| disabled | Boolean | false | 是否禁用输入框 |
| readonly | Boolean | false | 是否只读 |
| resize | String | "none" | 是否允许调整大小,支持 "none"、"both"、"horizontal"、"vertical" |
| autofocus | Boolean | false | 是否自动聚焦 |
| validateEvent | Boolean | true | 是否触发表单验证事件 |
| inputStyle | Object | {} | 输入框自定义样式对象 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "radio" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String/Number | 无 | 绑定的选中值 |
| options | Array | 选项数组,包含 label 和 value | |
| disabled | Boolean | false | 是否禁用 |
| size | String | "default" | 尺寸,支持 "small"、"default"、"large" |
| border | Boolean | false | 是否显示边框 |
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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "checkbox" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Array | 绑定的选中值数组 | |
| options | Array | 选项数组,包含 label 和 value | |
| disabled | Boolean | false | 是否禁用 |
| size | String | "default" | 尺寸 |
| min | Number | 无 | 最小选中数量 |
| max | Number | 无 | 最大选中数量 |
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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "select" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String/Array | "" | 绑定的值,multiple 时为数组 |
| options | Array | 选项数组,包含 label 和 value | |
| multiple | Boolean | false | 是否多选 |
| disabled | Boolean | false | 是否禁用 |
| clearable | Boolean | false | 是否显示清除按钮 |
| placeholder | String | "" | 占位文字 |
| filterable | Boolean | false | 是否支持搜索过滤 |
| size | String | "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>"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "inputSlot" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 插槽模板相关配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 绑定的输入值 |
| placeholder | String | "" | 占位文字 |
| clearable | Boolean | false | 是否显示清除按钮 |
| disabled | Boolean | false | 是否禁用 |
| readonly | Boolean | false | 是否只读 |
| size | String | "default" | 尺寸 |
config 对象属性说明
| 属性名 | 类型 | 说明 |
|---|---|---|
| prefixSlot | String | 输入框前置插槽模板字符串 |
| suffixSlot | String | 输入框后置插槽模板字符串 |
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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "datePicker" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Date/String/Array | null | 绑定值,range 模式为数组 |
| type | String | "date" | 类型,如 "date", "datetime", "daterange", "datetimerange" |
| format | String | "" | 展示格式 |
| valueFormat | String | "" | 绑定值格式 |
| placeholder | String | "" | 占位文字 |
| disabled | Boolean | false | 是否禁用 |
| clearable | Boolean | false | 是否显示清除按钮 |
| editable | Boolean | true | 输入框是否可编辑 |
| range | Boolean | false | 是否为范围选择 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "timePicker" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String/Array | null | 绑定值,isRange 为 true 时为数组 |
| isRange | Boolean | false | 是否时间范围选择 |
| format | String | "HH:mm:ss" | 显示格式 |
| valueFormat | String | "HH:mm:ss" | 绑定值格式 |
| placeholder | String | "" | 占位文字 |
| disabled | Boolean | false | 是否禁用 |
| clearable | Boolean | false | 是否显示清除按钮 |
| size | String | "default" | 组件尺寸 |
formItem、customRules、config 与 input 一致
9. colorPicker(颜色选择)
作用
用于选择颜色值。
示例
{
"type": "colorPicker",
"name": "themeColor",
"control": {
"modelValue": "#409EFF",
"disabled": false,
"showAlpha": false,
"size": "default"
},
"formItem": {
"label": "主题颜色"
},
"config": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "colorPicker" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 绑定的颜色值,支持 HEX、RGBA等格式 |
| disabled | Boolean | false | 是否禁用 |
| showAlpha | Boolean | false | 是否显示透明度选择 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "switch" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Boolean | false | 绑定的开关状态 |
| disabled | Boolean | false | 是否禁用 |
| activeText | String | "" | 开启时显示文字 |
| inactiveText | String | "" | 关闭时显示文字 |
| activeColor | String | "#409EFF" | 开启时颜色 |
| inactiveColor | String | "#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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "inputNumber" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Number | 0 | 绑定的数值 |
| min | Number | 无 | 最小值 |
| max | Number | 无 | 最大值 |
| step | Number | 1 | 步进值 |
| disabled | Boolean | false | 是否禁用 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "cascader" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Array | 绑定的选中值数组 | |
| options | Array | 级联选项数据,包含 label、value、children | |
| disabled | Boolean | false | 是否禁用 |
| clearable | Boolean | false | 是否显示清除按钮 |
| placeholder | String | "" | 占位文字 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "rate" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Number | 0 | 当前评分 |
| max | Number | 5 | 最大分数 |
| disabled | Boolean | false | 是否禁用 |
| allowHalf | Boolean | false | 是否允许半星评分 |
| showText | Boolean | false | 是否显示文本说明 |
| showScore | Boolean | false | 是否显示数字评分 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "slider" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Number/Array | 0 | 当前数值,range 为 true 时为数组 |
| min | Number | 0 | 最小值 |
| max | Number | 100 | 最大值 |
| step | Number | 1 | 步长 |
| disabled | Boolean | false | 是否禁用 |
| range | Boolean | false | 是否范围选择 |
| showTooltip | Boolean | true | 是否显示提示 |
| size | String | "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": {}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "treeSelect" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
| customRules | Array | 否 | 自定义验证规则函数数组 |
| config | Object | 否 | 组件额外扩展配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | Array/String | 绑定值,multiple 为 true 时为数组 | |
| treeData | Array | 树数据,包含 label、id、children | |
| multiple | Boolean | false | 是否多选 |
| disabled | Boolean | false | 是否禁用 |
| clearable | Boolean | false | 是否显示清除按钮 |
| placeholder | String | "" | 占位文字 |
| size | String | "default" | 组件尺寸 |
formItem、customRules、config 与 input 一致
16. txt(文本显示)
作用
用于显示只读文本。
示例
{
"type": "txt",
"name": "descriptionText",
"control": {
"modelValue": "这是只读文本"
},
"formItem": {
"label": "说明"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "txt" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 显示的文本内容 |
17. title(标题)
作用
用于显示标题文本。
示例
{
"type": "title",
"name": "pageTitle",
"control": {
"modelValue": "用户管理"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "title" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 标题文本内容 |
18. tabs(标签页)
作用
用于创建标签页切换。
示例
{
"type": "tabs",
"name": "mainTabs",
"control": {
"modelValue": "tab1",
"tabs": [
{ "label": "标签1", "name": "tab1" },
{ "label": "标签2", "name": "tab2" }
]
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "tabs" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 当前激活的标签名 |
| tabs | Array | 标签数组,包含 label 和 name |
19. flex(弹性布局)
作用
用于布局弹性容器。
示例
{
"type": "flex",
"name": "flexContainer",
"control": {
"justify": "start",
"align": "center",
"direction": "row",
"wrap": "nowrap"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "flex" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| justify | String | "start" | 主轴对齐方式 |
| align | String | "stretch" | 侧轴对齐方式 |
| direction | String | "row" | 主轴方向 |
| wrap | String | "nowrap" | 是否换行 |
20. card(卡片)
作用
用于显示卡片容器。
示例
{
"type": "card",
"name": "userCard",
"control": {
"header": "用户信息",
"bordered": true,
"shadow": true
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "card" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| header | String | "" | 卡片头部标题 |
| bordered | Boolean | false | 是否有边框 |
| shadow | Boolean | false | 是否有阴影 |
21. divider(分割线)
作用
用于分隔内容。
示例
{
"type": "divider",
"name": "lineDivider",
"control": {
"direction": "horizontal",
"contentPosition": "center"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "divider" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| direction | String | "horizontal" | 分割线方向,"horizontal" 或 "vertical" |
| contentPosition | String | "center" | 内容位置,"left"、"center" 或 "right" |
22. button(按钮)
作用
用于触发操作。
示例
{
"type": "button",
"name": "submitBtn",
"control": {
"text": "提交",
"type": "primary",
"size": "default",
"disabled": false,
"loading": false,
"icon": "Check"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "button" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | String | "" | 按钮显示文本 |
| type | String | "default" | 按钮类型,如 "primary"、"success" 等 |
| size | String | "default" | 按钮尺寸 |
| disabled | Boolean | false | 是否禁用 |
| loading | Boolean | false | 是否加载中 |
| icon | String | "" | 按钮图标名称 |
23. table(表格)
作用
用于显示表格数据。
示例
{
"type": "table",
"name": "userTable",
"control": {
"columns": [
{ "label": "姓名", "prop": "name" },
{ "label": "年龄", "prop": "age" }
],
"data": []
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "table" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| columns | Array | 表格列配置,包含 label 和 prop | |
| data | Array | 表格数据 |
24. component(自定义组件)
作用
用于嵌入自定义组件。
示例
{
"type": "component",
"name": "customComp",
"control": {
"componentName": "MyComponent",
"props": {}
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "component" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| componentName | String | "" | 自定义组件名称 |
| props | Object | {} | 传递给自定义组件的属性 |
25. upload(上传)
作用
用于文件上传。
示例
{
"type": "upload",
"name": "avatar",
"control": {
"action": "/upload",
"multiple": false,
"accept": "image/*",
"fileList": [],
"disabled": false,
"showFileList": true
},
"formItem": {
"label": "头像上传"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "upload" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| action | String | "" | 上传接口地址 |
| multiple | Boolean | false | 是否支持多文件上传 |
| accept | String | "" | 接受的文件类型 |
| fileList | Array | 已上传文件列表 | |
| disabled | Boolean | false | 是否禁用 |
| showFileList | Boolean | true | 是否显示文件列表 |
formItem、customRules、config 与 input 一致
26. tinymce(富文本编辑器)
作用
用于编辑富文本内容。
示例
{
"type": "tinymce",
"name": "content",
"control": {
"modelValue": "",
"disabled": false,
"height": 300
},
"formItem": {
"label": "内容"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "tinymce" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
| formItem | Object | 否 | 表单项相关配置 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | String | "" | 富文本内容 |
| disabled | Boolean | false | 是否禁用编辑 |
| height | Number | 300 | 编辑器高度(像素) |
27. grid(网格布局)
作用
用于布局网格容器。
示例
{
"type": "grid",
"name": "gridLayout",
"control": {
"cols": 4,
"gutter": 10,
"justify": "start",
"align": "top"
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "grid" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| cols | Number | 24 | 列数 |
| gutter | Number | 0 | 栅格间距 |
| justify | String | "start" | 主轴对齐方式 |
| align | String | "top" | 侧轴对齐方式 |
28. div(容器)
作用
用于包裹内容的容器。
示例
{
"type": "div",
"name": "contentWrapper",
"control": {
"style": {
"padding": "10px",
"backgroundColor": "#f5f5f5"
}
}
}
根级属性说明
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 组件类型,固定为 "div" |
| name | String | 是 | 字段名,数据绑定的键名 |
| control | Object | 是 | 组件控制属性 |
control 对象属性说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| style | Object | {} | 容器自定义样式 |
表单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"
}
}