module.exports = { group: '原子组件', componentName: 'Form.Item', title: '表单项', docUrl: '', screenshot: '', npm: { package: '@anfait/lowcode-materials', version: '{{version}}', exportName: 'Form', main: '', destructuring: true, subName: 'Item', }, props: [ { name: 'id', propType: 'string', }, { name: 'rtl', propType: 'bool', }, { name: 'label', propType: 'string', description: '标签', }, { name: 'labelCol', propType: { type: 'shape', value: [ { name: 'span', description: 'span', propType: 'number', }, { name: 'offset', description: 'offset', propType: 'number', }, ], }, description: 'label 标签布局,通 `` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效', }, { name: 'wrapperCol', propType: { type: 'shape', value: [ { name: 'span', description: 'span', propType: 'number', }, { name: 'offset', description: 'offset', propType: 'number', }, ], }, description: '需要为输入控件设置布局样式时,使用该属性,用法同 labelCol', }, { name: 'help', title: { label: '自定义提示信息', tip: '如不设置,则会根据校验规则自动生成.', }, propType: 'string', description: '自定义提示信息,如不设置,则会根据校验规则自动生成.', }, { name: 'extra', title: { label: '额外的提示信息', tip: '和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面', }, propType: 'string', description: '额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面', }, { name: 'validateState', title: { label: '校验状态', tip: '如不设置,则会根据校验规则自动生成\n@enumdesc 失败, 成功, 校验中, 警告', }, propType: { type: 'oneOf', value: ['error', 'success', 'loading', 'warning'], }, description: '校验状态,如不设置,则会根据校验规则自动生成\n@enumdesc 失败, 成功, 校验中, 警告', }, { name: 'style', propType: 'object', description: '自定义内联样式', }, { name: 'size', title: { label: 'Size', tip: '单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。', }, propType: { type: 'oneOf', value: ['large', 'small', 'medium'], }, description: '单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。', }, { name: 'fullWidth', title: { label: 'fullWidth', tip: '单个 Item 中表单类组件宽度是否是100%', }, propType: 'bool', description: '单个 Item 中表单类组件宽度是否是100%', }, { name: 'labelAlign', title: { label: '标签的位置', tip: '上, 左, 内', }, propType: { type: 'oneOf', value: ['top', 'left', 'inset'], }, description: '标签的位置\n@enumdesc 上, 左, 内', }, { name: 'labelTextAlign', title: { label: '标签的左右对齐方式', tip: '左, 右', }, propType: { type: 'oneOf', value: ['left', 'right'], }, description: '标签的左右对齐方式\n@enumdesc 左, 右', }, { name: 'className', propType: 'string', description: '扩展class', }, { name: 'required', title: { label: '不能为空', tip: '[表单校验] 不能为空', }, propType: 'bool', description: '[表单校验] 不能为空', }, { name: 'requiredMessage', title: { label: '自定义错误信息', tip: '[表单校验]为空时自定义错误信息', }, propType: 'string', description: 'required 自定义错误信息', }, { name: 'min', title: { label: '最小值', tip: '[表单校验] 最小值', }, propType: 'number', description: '[表单校验] 最小值', }, { name: 'max', title: { label: '最大值', tip: '[表单校验] 最大值', }, propType: 'number', description: '[表单校验] 最大值', }, { name: 'minmaxMessage', title: { label: 'min/max message', tip: '[表单校验] min/max 自定义错误信息', }, propType: 'string', description: 'min/max 自定义错误信息', }, { name: 'minLength', title: { label: '最小长度', tip: '[表单校验] 字符串最小长度 / 数组最小个数', }, propType: 'number', description: '[表单校验] 字符串最小长度 / 数组最小个数', }, { name: 'maxLength', title: { label: '最大长度', tip: '[表单校验] 字符串最大长度 / 数组最大个数', }, propType: 'number', description: '[表单校验] 字符串最大长度 / 数组最大个数', }, { name: 'minmaxLengthMessage', title: { label: 'max|min length error message', tip: '[表单校验] minLength/maxLength 自定义错误信息', }, propType: 'string', description: 'minLength/maxLength 自定义错误信息', }, { name: 'length', title: { label: '长度', tip: '[表单校验] 字符串精确长度 / 数组精确个数', }, propType: 'number', description: '[表单校验] 字符串精确长度 / 数组精确个数', }, { name: 'lengthMessage', title: { label: 'length error message', tip: '[表单校验] minLength/maxLength 自定义错误信息', }, propType: 'string', description: 'length 自定义错误信息', }, { name: 'pattern', title: { label: '正则', tip: '[表单校验] 正则校验', }, propType: 'string', description: '正则校验', }, { name: 'patternMessage', title: { label: 'pattern error message', tip: '[表单校验] pattern 自定义错误信息', }, propType: 'string', description: 'pattern 自定义错误信息', }, { name: 'format', title: { label: 'format', tip: '[表单校验] 四种常用的 pattern', }, propType: { type: 'oneOf', value: ['number', 'email', 'url', 'tel'], }, description: '[表单校验] 四种常用的 pattern', }, { name: 'formatMessage', title: { label: 'format error message', tip: '[表单校验] format 自定义错误信息', }, propType: 'string', description: 'format 自定义错误信息', }, { name: 'validator', propType: 'func', description: '[表单校验] 自定义校验函数', }, { name: 'autoValidate', propType: 'bool', description: '是否修改数据时自动触发校验', }, { name: 'device', propType: { type: 'oneOf', value: ['phone', 'tablet', 'desktop'], }, description: '预设屏幕宽度', }, { name: 'responsive', propType: 'bool', }, { name: 'colSpan', propType: 'number', description: '在响应式布局模式下,表单项占多少列', }, { name: 'labelWidth', propType: { type: 'oneOfType', value: ['string', 'number'], }, description: '在响应式布局下,且label在左边时,label的宽度是多少', defaultValue: 100, }, { name: 'isPreview', propType: 'bool', description: '是否开启预览态', }, ], configure: { component: { isContainer: true, nestingRule: { parentWhitelist: ['Form'], }, }, supports: { style: true, }, props: [ { name: 'label', title: { label: { type: 'i18n', zh_CN: '标签文本', en_US: 'Label', }, tip: { type: 'i18n', zh_CN: '属性: label | 说明: 标签文本内容', en_US: 'prop: label | description: label content', }, }, setter: 'StringSetter', supportVariable: true, description: '标签', }, { name: 'help', title: { label: { type: 'i18n', zh_CN: '错误提示', en_US: 'Help Info', }, tip: { type: 'i18n', zh_CN: '属性: help | 说明: 自定义提示信息, 如不设置,则会根据校验规则自动生成.', en_US: 'prop: help | description: help infomation', }, }, setter: 'StringSetter', supportVariable: true, description: '自定义提示信息,如不设置,则会根据校验规则自动生成.', }, { name: 'extra', title: { label: { type: 'i18n', zh_CN: '帮助提示', en_US: 'Extra Info', }, tip: { type: 'i18n', zh_CN: '属性: extra | 说明: 额外的提示信息, 和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面', en_US: 'prop: extra | description: extra infomation', }, }, setter: 'StringSetter', supportVariable: true, }, { name: 'validateState', title: { label: '校验状态', tip: '如不设置,则会根据校验规则自动生成\n@enumdesc 失败, 成功, 校验中, 警告', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['error', 'success', 'loading', 'warning'], }, }, }, { name: 'size', title: { label: '尺寸', tip: '单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['small', 'medium', 'large'], }, }, defaultValue: 'medium', }, { name: 'labelAlign', title: { label: '标签位置', tip: '上, 左, 内', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['top', 'left', 'inset'], }, }, defaultValue: 'left', }, { name: 'labelTextAlign', title: { label: '标签对齐', tip: '左, 右', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['left', 'right'], }, }, defaultValue: 'left', }, { name: 'device', title: { label: '设备', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['phone', 'tablet', 'desktop'], }, }, defaultValue: 'desktop', }, { name: 'fullWidth', title: { label: '宽度占满', tip: '单个 Item 中表单类组件宽度是否是100%', }, setter: 'BoolSetter', supportVariable: true, description: '单个 Item 中表单类组件宽度是否是100%', }, { name: 'isPreview', title: { label: '预览态', }, setter: 'BoolSetter', supportVariable: true, description: '是否开启预览态', }, { name: 'autoValidate', title: { label: '自动校验', }, setter: 'BoolSetter', supportVariable: true, description: '是否修改数据时自动触发校验', }, { type: 'group', display: 'accordion', title: '校验', items: [ { type: 'group', display: 'popup', title: '非空校验', items: [ { name: 'required', title: { label: '不能为空', tip: '[表单校验] 不能为空', }, setter: 'BoolSetter', supportVariable: true, description: '[表单校验] 不能为空', }, { name: 'requiredMessage', title: { label: '错误信息', tip: '[表单校验]为空时自定义错误信息', }, setter: 'StringSetter', supportVariable: true, description: 'required 自定义错误信息', }, ], }, { type: 'group', display: 'popup', title: '最大/最小值校验', items: [ { name: 'min', title: { label: '最小值', tip: '[表单校验] 最小值', }, setter: 'NumberSetter', supportVariable: true, description: '[表单校验] 最小值', }, { name: 'max', title: { label: '最大值', tip: '[表单校验] 最大值', }, setter: 'NumberSetter', supportVariable: true, description: '[表单校验] 最大值', }, { name: 'minmaxMessage', title: { label: '错误信息', tip: '[表单校验] min/max 自定义错误信息', }, setter: 'StringSetter', supportVariable: true, }, ], }, { type: 'group', display: 'popup', title: '最大/最小长度校验', items: [ { name: 'minLength', title: { label: '最小长度', tip: '[表单校验] 字符串最小长度 / 数组最小个数', }, setter: 'NumberSetter', supportVariable: true, description: '[表单校验] 字符串最小长度 / 数组最小个数', }, { name: 'maxLength', title: { label: '最大长度', tip: '[表单校验] 字符串最大长度 / 数组最大个数', }, setter: 'NumberSetter', supportVariable: true, description: '[表单校验] 字符串最大长度 / 数组最大个数', }, { name: 'minmaxLengthMessage', title: { label: '错误信息', tip: '[表单校验] minLength/maxLength 自定义错误信息', }, setter: 'StringSetter', supportVariable: true, description: 'minLength/maxLength 自定义错误信息', }, ], }, { type: 'group', display: 'popup', title: '长度校验', items: [ { name: 'length', title: { label: '长度', tip: '[表单校验] 字符串精确长度 / 数组精确个数', }, setter: 'NumberSetter', supportVariable: true, description: '[表单校验] 字符串精确长度 / 数组精确个数', }, { name: 'lengthMessage', title: { label: '错误信息', tip: '[表单校验] minLength/maxLength 自定义错误信息', }, setter: 'StringSetter', supportVariable: true, description: 'length 自定义错误信息', }, ], }, { type: 'group', display: 'popup', title: '正则校验', items: [ { name: 'pattern', title: { label: '正则', tip: '[表单校验] 正则校验', }, setter: 'StringSetter', supportVariable: true, description: '正则校验', }, { name: 'patternMessage', title: { label: '错误信息', tip: '[表单校验] pattern 自定义错误信息', }, setter: 'StringSetter', supportVariable: true, description: 'pattern 自定义错误信息', }, ], }, { type: 'group', display: 'popup', title: '格式化校验', items: [ { name: 'format', title: { label: 'format', tip: '[表单校验] 四种常用的 pattern', }, setter: { componentName: 'RadioGroupSetter', props: { options: ['number', 'email', 'url', 'tel'], }, }, description: '[表单校验] 四种常用的 pattern', }, { name: 'formatMessage', title: { label: '错误信息', tip: '[表单校验] format 自定义错误信息', }, setter: 'StringSetter', supportVariable: true, description: 'format 自定义错误信息', }, ], }, { name: 'validator', display: 'popup', title: { label: '自定义校验函数', }, setter: 'FunctionSetter', supportVariable: true, description: '[表单校验] 自定义校验函数', }, ], }, { type: 'group', title: '布局', display: 'accordion', items: [ { name: 'labelCol', display: 'inline', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { name: 'span', description: 'span', setter: 'NumberSetter', supportVariable: true, }, { name: 'offset', description: 'offset', setter: 'NumberSetter', supportVariable: true, }, ], }, }, }, description: 'label 标签布局,通 `` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效', }, { name: 'wrapperCol', display: 'inline', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { name: 'span', description: 'span', setter: 'NumberSetter', supportVariable: true, }, { name: 'offset', description: 'offset', setter: 'NumberSetter', supportVariable: true, }, ], }, }, }, description: '需要为输入控件设置布局样式时,使用该属性,用法同 labelCol', }, ], }, { type: 'group', title: '高级', display: 'block', items: [ { name: 'id', title: { label: { type: 'i18n', zh_CN: '唯一标识', en_US: 'ID', }, tip: { type: 'i18n', zh_CN: '属性: id | 说明: 唯一标识', en_US: 'prop: id | description: switch id', }, }, setter: 'StringSetter', supportVariable: true, }, { name: 'name', title: { label: { type: 'i18n', zh_CN: '表单标识', en_US: 'Name', }, tip: { type: 'i18n', zh_CN: '属性: name | 说明: 表单标识', en_US: 'prop: name | description: switch name', }, }, setter: 'StringSetter', supportVariable: true, }, ], }, ], advanced: { callbacks: { onNodeRemove: (removedNode, currentNode) => { if (!removedNode || !currentNode) { return; } const children = currentNode.children; // 若无children,则说明当前P组件内已为空,需要删除P组件本身 if (children && children.length === 0) { currentNode.remove(); } }, }, }, }, icon: 'https://img.alicdn.com/tfs/TB1nYqOuW61gK0jSZFlXXXDKFXa-112-64.png', category: '信息输入', };