import snippets from './snippets'; export default { snippets, componentName: 'Form.Item', title: '表单项', category: '表单', group: '移动端', npm: { package: 'web-sdk-h5-material', version: '0.1.0', exportName: 'Form', main: 'src/index.tsx', destructuring: true, subName: 'Item', }, props: [ { name: 'name', title: { label: '字段名', tip: '字段名' }, isRequired: true, propType: 'string', setter: 'StringSetter', supportVariable: true, }, { name: 'label', title: { label: '标签', tip: '标签的文本' }, propType: { type: 'oneOfType', value: ['string', 'node'] }, }, { name: 'extra', title: { label: '提示信息', tip: '额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。', }, propType: { type: 'oneOfType', value: ['string', 'node'] }, }, { name: 'required', title: { label: '必填标记', tip: '必填样式设置。如不设置,则会根据校验规则自动生成', }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', supportVariable: true, }, { name: 'initialValue', title: { label: '默认值', tip: '设置子元素默认值,如果与 Form 的 initialValues 冲突则以 Form 为准', }, propType: 'string', setter: 'StringSetter', supportVariable: true, }, { name: 'noStyle', title: { label: '隐藏标签', tip: '为 true 时不带样式,作为纯字段控件使用', }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', supportVariable: true, }, { name: 'valuePropName', title: { label: '子组件值字段', tip: `子节点的值的字段,如 Switch 的是 'checked'`, }, propType: 'string', defaultValue: 'value', setter: 'StringSetter', supportVariable: true, }, { name: 'getValueFromEvent', title: { label: 'event转换器', tip: `设置如何将 event 的值转换成字段值,如将上传组件的fileList作为value值传出`, }, propType: 'func', }, ], configure: { component: { isContainer: true, nestingRule: { childWhitelist: [], parentWhitelist: ['Form'] }, }, supports: { style: true }, advanced: { callbacks: { onNodeRemove: (removedNode, currentNode) => { if (!removedNode || !currentNode) { return; } const { children } = currentNode; // 若无children,则说明当前P组件内已为空,需要删除P组件本身 if (children && children.length === 0) { currentNode.remove(); } }, }, }, }, };