UNPKG

@ywfe/materials-design

Version:
1,534 lines (1,522 loc) 42.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.visibleProps = exports.tooltipProps = exports.tableFormItemProps = exports.sizeConfig = exports.rulesProps = exports.requiredProps = exports.readOnlyProps = exports.reactionsProps = exports.propsProps = exports.previewProps = exports.layoutConfig = exports.getDataSourceProps = exports.disabledProps = exports.descriptionProps = exports.defaultValueProps = exports.decoratorProps = exports.customComponentProps = exports.componentPropsProps = exports.childrenProps = exports.arrayTableItemsProps = exports.arrayItemsItemsProps = exports.FormItemsProps = exports.BaseFormItemProps = void 0; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _utils = require("../_utils"); var _excluded = ["title", "width"]; var _window; // const primaryKeyConfig = { // name: 'primaryKey', // title: { label: '编号', tip: 'primaryKey | 编号' }, // // display: 'none', // condition: hideProp, // defaultValue: (val: any) => { // if (val) return val; // return mockId(); // }, // setter: 'StringSetter', // }; // 基础组件 var baseComponent = [{ label: '输入框', value: 'Input' }, { label: '长文本输入框', value: 'TextArea' }, { label: '选择器', value: 'Select' }, { label: '搜索框', value: 'SearchSelect' }, { label: '级联选择器', value: 'CascaderSelect' }, { label: '类目选择器', value: 'CategorySelect' }, { label: '开关', value: 'Switch' }, { label: '复选框', value: 'Checkbox' }, { label: '单选按钮', value: 'RadioGroup' }, { label: '复选组合', value: 'CheckboxGroup' }, { label: '数字输入框', value: 'NumberPicker' }, { label: '数字范围输入框', value: 'NumberRangePicker' }, { label: '时间', value: 'TimePicker' }, { label: '日期时间', value: 'DateTimePicker' }, { label: '日期', value: 'DatePicker' }, { label: '月份', value: 'MonthPicker' }, { label: '时间范围', value: 'TimeRangePicker' }, { label: '日期范围', value: 'DateRangePicker' }, // { // label: 'DateRangeGroup', // value: 'DateRangeGroup', // }, { label: '月范围', value: 'MonthRangePicker' }, { label: '日期时间范围', value: 'DateTimeRangePicker' }, { label: '树选择器', value: 'TreeSelect' }]; // 预览组件 var previewComponent = [{ label: '文本', value: 'PreviewText.Input' }, { label: '选择项', value: 'PreviewText.Select' }, { label: '树选择项', value: 'PreviewText.TreeSelect' }, { label: '级联选择项', value: 'PreviewText.Cascader' }, { label: '日期', value: 'PreviewText.DatePicker' }, { label: '日期范围', value: 'PreviewText.DateRangePicker' }, { label: '时间', value: 'PreviewText.TimePicker' }, { label: '时间范围', value: 'PreviewText.TimeRangePicker' }, { label: '数字', value: 'PreviewText.NumberPicker' }]; var formItemListProps = { name: 'component', title: { label: '表单项组件', tip: 'component | 表单项组件' }, defaultValue: 'Input', // important: true, supportVariable: false, setter: { componentName: 'SelectSetter', props: { options: [].concat(baseComponent, [{ label: 'InputGroup', value: 'InputGroup' }, { label: 'RCArrayTable', value: 'RCArrayTable' }, { label: 'RCArrayItems', value: 'RCArrayItems' }, { label: 'FormGrid', value: 'FormGrid' }, { label: 'FormGroup', value: 'FormGroup' }, // { // label: 'OrgSeletor', // value: 'OrgSeletor', // }, // { // label: 'EmpSelector', // value: 'EmpSelector', // }, { label: '自定义组件', value: '' }]) } }, extraProps: { // setValue: (target, value) => { // console.log('value', value); // // 组件补充 // switch (value) { // case 'Upload': // target.parent.setPropValue('customComponent', { // type: 'JSSlot', // params: ['props', 'value', 'field', 'schema'], // value: [ // { // componentName: 'YwUpload', // id: `node_${uuid()}`, // props: { // isOss: true, // securityType: 'public', // ossDir: '/common', // onChange: { // type: 'JSExpression', // value: '(res)=>{ this.field.setValue(res[0]?.url || "")}', // }, // }, // }, // ], // id: `node_${uuid()}`, // }); // break; // case '': // default: // break; // } // }, } }; var customComponentProps = exports.customComponentProps = { title: { label: '自定义组件', tip: 'customComponent | 自定义组件' }, name: '_render', supportVariable: false, defaultValue: null, setter: { componentName: 'SlotSetter', title: '自定义组件插槽', hideParams: true, initialValue: { type: 'JSSlot', params: ['props', 'value', 'field', 'schema'], value: [] } }, condition: function condition(target) { return !(0, _utils.getPropValueWithPath)(target, '.component'); } }; // export const writeOnlyProps = { // title: { label: '是否只写', tip: 'writeOnly | 自定义组件' }, // name: 'writeOnly', // supportVariable: false, // condition: (target: any) => { // return [ // 'Input', // 'Select', // 'TreeSelect', // 'DatePicker', // 'DateRangePicker', // 'TimePicker', // 'TimeRangePicker', // 'NumberPicker', // ].includes(getPropValueWithPath(target, '.component')); // }, // extraProps: { // setValue: () => {}, // }, // }; var labelConfig = { name: 'title', title: { label: '标题', tip: 'title| 标题' }, display: 'inline', defaultValue: '表单项', isRequired: true, supportVariable: false, setter: { componentName: 'StringSetter' // props: { // options: window.TitleOptions, // }, }, important: true }; var nameConfig = { name: 'name', title: { label: '表单关联字段', tip: 'name | 表单关联字段' }, important: false, supportVariable: false, defaultValue: (0, _utils.uuid)(), setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: 'StringSetter' }, { componentName: 'SelectSetter', props: { options: ((_window = window) === null || _window === void 0 ? void 0 : _window.NameOptions) || [], showSearch: true } }] } } }; var typeConfig = { name: 'type', title: { label: '类型', tip: 'type | 类型' }, supportVariable: false, setter: { componentName: 'SelectSetter', props: { options: [{ label: 'string', value: 'string' }, { label: 'object', value: 'object' }, { label: 'array', value: 'array' }, { label: 'void', value: 'void' }] }, initialValue: 'string' }, extraProps: { setValue: function setValue(target, value) { target.parent.setPropValue('decorator', value === 'void' ? 'void' : 'FormItem'); } } }; var sizeConfig = exports.sizeConfig = { name: 'size', title: { label: '尺寸', tip: 'size | 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。' }, setter: { componentName: 'RadioGroupSetter', props: { options: [{ label: '小', value: 'small' }, { label: '中', value: 'medium' }, { label: '大', value: 'large' }] } }, defaultValue: 'medium' }; var layoutConfig = exports.layoutConfig = { items: [{ name: 'labelCol', title: { label: '标签宽度', tip: 'labelCol | 标签宽度' }, setter: { componentName: 'NumberSetter', initialValue: 6 } }, { name: 'wrapperCol', title: { label: '表单项宽度', tip: 'wrapperCol | 表单项宽度' }, setter: { componentName: 'NumberSetter', initialValue: 10 } }] }; // const childFormConfig = { // name: 'childForm', // title: '开启子表单', // setter: { // componentName: 'SlotSetter', // initialValue: { // type: 'JSSlot', // visible: false, // value: [ // { // componentName: 'ChildForm', // props: { // primaryKey: String(Math.floor(Math.random() * 10000)), // placeholder: '请在右侧面板添加表单项+', // placeholderStyle: { // height: '38px', // color: '#0088FF', // background: '#d8d8d836', // border: 0, // gridArea: 'span 4 / span 4', // }, // columns: 3, // labelCol: { // fixedSpan: 4, // }, // labelAlign: 'top', // emptyContent: '添加表单项', // }, // children: [...new Array(3).keys()].map((item) => ({ // componentName: 'FormInput', // props: { // formItemProps: { // primaryKey: String(Math.floor(Math.random() * 10000) + item), // label: '表单项', // size: 'medium', // device: 'desktop', // fullWidth: true, // }, // placeholder: '请输入', // }, // })), // }, // ], // }, // }, // }; // const enumComponentsList = ['RadioGroup', 'Select', 'CheckboxGroup']; var enumConfig = { name: 'enum', display: 'block', title: { label: '枚举', tip: 'enum | 枚举出表单项可选择的值' }, supportVariable: false, condition: function condition(target) { var index = +target.parent.key; var items = target.node.propsData.items; if (enumComponentsList.indexOf(items[index].component) > -1) { return true; } return false; }, defaultValue: null, setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: 'ArraySetter', props: { itemSetter: { componentName: 'ObjectSetter', props: { config: { items: [{ name: 'label', display: 'inline', title: { label: '名称', tip: 'label | 名称' }, setter: 'StringSetter', important: true, supportVariable: false }, { name: 'value', display: 'inline', title: { label: '值', tip: 'value | 值' }, setter: { componentName: 'MixedSetter', props: { setters: ['StringSetter', 'NumberSetter'] } }, important: true }] } }, initialValue: function initialValue() { return { label: '选项', value: "id-" + (0, _utils.uuid)() }; } } } }, { componentName: 'JsonSetter' }] } } }; // const FormSchemaReaction = { // componentName: 'ObjectSetter', // props: { // config: { // items: [ // { // name: 'dependencies', // title: { // label: '依赖字段', // tip: 'dependencies | 可以通过dependencies属性,设置关联字段。当关联字段的值发生变化时,会触发校验与更新', // }, // supportVariable: false, // setter: { // componentName: 'StringSetter', // // dataSource: [], // }, // }, // { // name: 'target', // title: { label: '目标字段', tip: 'target | 主动联动配置项' }, // supportVariable: false, // setter: { // componentName: 'StringSetter', // // dataSource: [], // }, // }, // { // name: 'effects', // title: { label: '生命周期', tip: 'effects | 执行生命周期' }, // supportVariable: false, // setter: { // componentName: 'SelectSetter', // props: { // options: [ // { // label: 'onFieldValueChange', // value: 'onFieldValueChange', // }, // { // label: 'onFieldInputValueChange', // value: 'onFieldInputValueChange', // }, // { // label: 'onFieldMount', // value: 'onFieldMount', // }, // { // label: 'onFieldInit', // value: 'onFieldInit', // }, // ], // }, // }, // }, // { // name: 'fulfill', // title: { label: '满足条件', tip: 'fulfill | 满足条件' }, // supportVariable: false, // setter: { // componentName: 'ObjectSetter', // props: { // config: { // items: [ // { // name: 'state', // title: { label: '表单项状态', tip: 'state | 表单项状态' }, // setter: { // componentName: 'ObjectSetter', // props: { // config: { // items: [ // { // name: 'value', // title: { label: '值', tip: 'value | 值' }, // setter: 'StringSetter', // supportVariable: false, // }, // { // name: 'visible', // title: { label: '是否可见', tip: 'visible | 是否可见' }, // setter: 'StringSetter', // supportVariable: false, // }, // { // name: 'disabled', // title: { label: '是否禁用', tip: 'visible | 是否禁用' }, // setter: 'StringSetter', // supportVariable: false, // }, // ], // }, // }, // }, // }, // { // name: 'schema', // title: { label: '表单项配置项', tip: 'schema | 表单项配置项' }, // supportVariable: false, // setter: { // componentName: 'SelectSetter', // props: { // options: [ // { // label: 'x-component', // value: 'x-component', // }, // ], // }, // }, // }, // { // name: 'run', // title: { label: '执行函数', tip: 'schema | 执行函数' }, // supportVariable: false, // setter: { // componentName: 'FunctionSetter', // }, // }, // ], // }, // }, // }, // }, // { // name: 'otherwise', // title: { label: '否则', tip: 'otherwise | 否则' }, // setter: { // componentName: 'ObjectSetter', // props: { // config: { // items: [ // { // name: 'state', // title: { label: '表单项状态', tip: 'state | 表单项状态' }, // supportVariable: false, // setter: { // componentName: 'SelectSetter', // props: { // options: [ // { // label: 'visible', // value: 'visible', // }, // { // label: 'value', // value: 'value', // }, // { // label: 'disabled', // value: 'disabled', // }, // ], // }, // }, // }, // { // name: 'schema', // title: { label: '表单项配置项', tip: 'schema | 表单项配置项' }, // supportVariable: false, // setter: { // componentName: 'SelectSetter', // props: { // options: [], // }, // }, // }, // { // name: 'run', // title: { label: '执行函数', tip: 'schema | 执行函数' }, // supportVariable: false, // setter: { // componentName: 'FunctionSetter', // }, // }, // ], // }, // }, // }, // }, // ], // }, // }, // }; var descriptionProps = exports.descriptionProps = { title: { label: '描述', tip: 'description | 描述' }, name: 'description', setter: 'StringSetter' }; var defaultValueProps = exports.defaultValueProps = { title: { label: '默认值', tip: 'defaultValue | 默认值' }, name: 'defaultValue', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, supportVariable: false }; var readOnlyProps = exports.readOnlyProps = { title: { label: '只读', tip: 'readOnly | 只读' }, name: 'readOnly', setter: 'BoolSetter', supportVariable: false }; var requiredProps = exports.requiredProps = { title: { label: '必填', tip: 'required | 必填' }, name: 'required', setter: 'BoolSetter', supportVariable: false }; var disabledProps = exports.disabledProps = { title: { label: '禁用', tip: 'disabled | 禁用' }, name: 'disabled', setter: 'BoolSetter' }; var previewProps = exports.previewProps = { title: { label: '预览态', tip: '_preview | 预览态' }, name: '_preview', setter: 'BoolSetter', condition: function condition(target) { return previewComponent.map(function (v) { return v.value.split('.')[1]; }).includes((0, _utils.getPropValueWithPath)(target, '.component')); } }; // export const minItemsProps = { // title: { label: '最小条目数', tip: 'minItems | 最小条目数' }, // name: 'minItems', // setter: 'NumberSetter', // supportVariable: false, // condition: (target: any) => { // return selectComponentsList.includes(getPropValueWithPath(target, '..component')); // }, // }; // export const maxItemsProps = { // title: { label: '最大条目数', tip: 'maxItems | 最大条目数' }, // name: 'maxItems', // setter: 'NumberSetter', // supportVariable: false, // condition: (target: any) => { // return selectComponentsList.includes(getPropValueWithPath(target, '..component')); // }, // }; var rulesProps = exports.rulesProps = { title: { label: '校验规则', tip: 'rules | 校验规则' }, name: 'rules', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, supportVariable: false }; var decoratorProps = exports.decoratorProps = { name: 'decorator', title: { label: '表单装饰器', tip: 'decorator | 表单装饰器 默认通用,带字段校验布局配置等' }, defaultValue: 'FormItem', setter: { componentName: 'RadioGroupSetter', props: { options: [{ label: '通用', value: 'FormItem' }, { label: '无', value: 'void' }] } }, supportVariable: false }; var propsProps = exports.propsProps = { title: { label: '属性配置', tip: 'props | 属性配置' }, name: 'props', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, extraProps: { setValue: function setValue(target, value) { target.parent.setPropValue('decorator', value ? 'FormItem' : null); } }, supportVariable: false, condition: function condition(target) { return (0, _utils.getPropValueWithPath)(target, '.decorator') === 'FormItem'; } }; var getDataSourceProps = exports.getDataSourceProps = { title: { label: '动态数据源', tip: 'getDataSource | 动态数据源' }, name: 'getDataSource', supportVariable: false, setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: 'SchemaFunctionSetter', props: { title: 'getDataSource', async: true, properties: { input: { type: 'object', properties: { value: { type: 'string' } }, required: ['value'] }, body: { type: 'array', items: [{ type: 'Function', properties: { template: 'RequestFunction', variable: 'requestRes', extraProps: {} } }, { type: 'Function', properties: { template: 'TransformFunction', variable: 'transformRes', extraProps: { source: '{{requestRes}}', rules: { data: ['$.list', { label: '$.name', value: '$.code' }] } } } }] }, output: 'transformRes.data' } } }] } } }; // 拥有枚举选项组件 var enumComponentsList = ['RadioGroup', 'Select', 'CheckboxGroup', 'CheckboxGroup', 'RadioGroup']; // 拥有select独有属性的组件 var selectComponentsList = ['Select', 'SearchSelect', 'CascaderSelect']; // 业务选择器 var bizSelectorComponentsList = ['OrgSelector', 'EmpSelector']; // 数字类型组件配置 var numberComponentsList = ['NumberPicker', 'NumberRangePicker']; // 级联组件 var cascaderComponentsList = ['CascaderSelect', 'CategorySelect']; // 拥有子组件的组件 复杂类型 var childComponentList = ['FormGroup', 'RCArrayTable', 'RCArrayItems', 'ArrayCards', 'InputGroup']; // const arrayComponentList = ['RCArrayTable', 'RCArrayItems']; // 类input组件 var inputComponentsList = ['Input', 'NumberRangePicker']; var inputComponentsProps = [{ name: 'prefix', title: { label: '前缀', tip: 'prefix | 前缀' }, supportVariable: false, setter: 'StringSetter' }, { name: 'suffix', title: { label: '后缀', tip: 'suffix | 后缀' }, supportVariable: false, setter: 'StringSetter' }]; // TextArea专用componentProps var textAreaComponentProps = [{ title: { label: '显示文字个数', tip: 'showCount | 显示文字个数' }, name: 'showCount', supportVariable: false, setter: 'BoolSetter' }, { title: { label: '最长文字数量', tip: 'maxLength | 最长文字数量' }, name: 'maxLength', supportVariable: false, setter: 'NumberSetter' }]; var enumComponentProps = [{ name: 'dict', title: { label: '字典数据源', tip: 'dict | 字典数据源' }, supportVariable: true }]; var selectComponentProps = [{ name: 'mode', title: { label: '设置Select的模式', tip: 'mode | 设置Select的模式' }, supportVariable: false, setter: { componentName: 'SelectSetter', props: { hasClear: true, options: [{ label: '多选 | multiple', value: 'multiple' }, { label: '标签 | tags', value: 'tags' }, { label: '单选 | single', value: 'single' }] } } }, { title: { label: '字段映射', tip: 'fieldNames | 自定义options中label value children的字段' }, name: 'fieldNames', setter: { componentName: 'ObjectSetter', props: { config: { items: [{ name: 'label', title: { label: '名称', tip: 'label | options中的名称' }, propType: 'string', setter: 'StringSetter', supportVariable: false, isRequired: true }, { name: 'value', title: { label: '值', tip: 'value | options中的值' }, propType: 'string', setter: 'StringSetter', supportVariable: false, isRequired: true }, { name: 'children', title: { label: '当前节点的子节点', tip: 'children | 当前节点的子节点' }, propType: 'string', supportVariable: false, setter: 'StringSetter' }] } } } }, { title: { label: '最多显示多少个标签', tip: 'maxTagCount | 最多显示多少个标签' }, name: 'maxTagCount', setter: 'NumberSetter', supportVariable: false }, { title: { label: '可搜索', tip: 'showSearch | 可搜索' }, name: 'showSearch', setter: 'BoolSetter', supportVariable: false }, { name: 'optionFilterProp', title: { label: '搜索过滤属性', tip: 'optionFilterProp | 搜索时过滤对应的option属性' }, supportVariable: false, setter: { componentName: 'RadioGroupSetter', props: { options: [{ label: 'label', value: 'label' }, { label: 'value', value: 'value' }] } } }, { title: { label: '节点文本', tip: 'labelInValue | 如果需要拿到选中的节点文本 label,可以使用 labelInValue 属性' }, name: 'labelInValue', setter: 'BoolSetter', supportVariable: false }, getDataSourceProps]; var cascaderComponentsProps = [{ title: { label: '支持多选节点', tip: 'multiple | 支持多选节点' }, name: 'multiple', setter: 'BoolSetter', supportVariable: false }, { title: { lable: '选中即发生改变', tip: 'changeOnSelect | 通过changeOnSelect设置是否选中即发生改变,允许只选中父节点,该属性仅在单选模式下有效' }, name: 'changeOnSelect', setter: 'BoolSetter', supportVariable: false }, { title: 'loadData', name: 'loadData', setter: 'BoolSetter', supportVariable: false }, { title: { lable: '动态加载选项', tip: 'loadData | 用于动态加载选项,无法与 showSearch 一起使用' }, name: 'loadData', supportVariable: false, setter: { componentName: 'FunctionSetter', props: { template: '(item) => item.label || item.value' } } }]; var bizSelectorComponentProps = [].concat(selectComponentProps, [{ title: { label: '最小条目数', tip: 'minItems | 最小条目数' }, name: 'minItems', setter: 'NumberSetter', supportVariable: false }, { title: { label: '最大条目数', tip: 'maxItems | 最大条目数' }, name: 'maxItems', setter: 'NumberSetter', supportVariable: false }]); var numberComponentProps = [{ name: 'formatter', title: { label: '格式化数据', tip: 'formatter | 格式化数据' }, supportVariable: false, propType: 'func', setter: [{ componentName: 'FunctionSetter', props: { template: 'formatter(value) { return "value + 1"}' } }] }, { name: 'formatter', title: { label: '格式化数据', tip: 'formatter | 格式化数据' }, supportVariable: false, propType: 'func', setter: [{ componentName: 'FunctionSetter', props: { template: 'formatter(value) { return "value + 1"}' } }] }]; var styleProps = { title: { label: '组件样式', tip: 'style | 组件样式' }, name: 'style', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, supportVariable: false }; var arrayComponentProps = [{ title: { label: '是否有边框', tip: 'bordered | 建议关闭' }, name: 'bordered', setter: 'BoolSetter', supportVariable: false }]; var componentPropsProps = exports.componentPropsProps = { title: { label: '组件属性配置', tip: 'componentProps | 组件属性配置' }, name: 'componentProps', display: 'accordion', setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: 'ObjectSetter', props: { config: { items: [styleProps, { name: 'placeholder', title: { label: '空数据占位符', tip: 'placeholder | 空数据占位符' }, setter: 'StringSetter', supportVariable: false }, { title: { label: '是否支持清空', tip: 'allowClear | 是否支持清空' }, name: 'allowClear', setter: 'BoolSetter', supportVariable: false }].concat((0, _utils.getPropsByDependence)(enumComponentProps, enumComponentsList, '..component'), (0, _utils.getPropsByDependence)(selectComponentProps, selectComponentsList, '..component'), (0, _utils.getPropsByDependence)(cascaderComponentsProps, cascaderComponentsList, '..component'), (0, _utils.getPropsByDependence)(inputComponentsProps, inputComponentsList, '..component'), (0, _utils.getPropsByDependence)(numberComponentProps, numberComponentsList, '..component'), (0, _utils.getPropsByDependence)(bizSelectorComponentProps, bizSelectorComponentsList, '..component'), (0, _utils.getPropsByDependence)(textAreaComponentProps, ['TextArea'], '..component'), (0, _utils.getPropsByDependence)(arrayComponentProps, ['RCArrayTable'], '..component')) }, defaultValue: {} } }, { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }] } } }; var reactionsProps = exports.reactionsProps = { title: { label: '联动逻辑', tip: 'reactions | 联动逻辑' }, name: 'reactions', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, supportVariable: false // display: 'accordion', // setter: [ // { // componentName: 'ArraySetter', // props: { // itemSetter: FormSchemaReaction, // }, // initialValue: [], // }, // FormSchemaReaction, // { // componentName: 'FunctionSetter', // }, // ], }; var tooltipProps = exports.tooltipProps = { title: { label: '提示信息', tip: 'tooltip | 提示信息' }, name: 'tooltip', setter: 'StringSetter', supportVariable: false, condition: _utils.hideProp }; var visibleProps = exports.visibleProps = { title: { label: '显示', tip: 'visible | 是否显示' }, name: 'visible', supportVariable: true }; var childrenProps = exports.childrenProps = { title: { label: '子组件', tip: 'children | 子组件' }, name: 'children', setter: { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }, supportVariable: false, condition: function condition(target) { return childComponentList.includes((0, _utils.getPropValueWithPath)(target, '.component')); } }; var arrayTableItemsProps = exports.arrayTableItemsProps = { type: 'object', setter: { componentName: 'ObjectSetter', props: { config: { items: [{ name: '_children', condition: false, title: { label: '表格项配置', tip: 'children | 表格项配置' }, setter: { componentName: 'ArraySetter', props: { itemSetter: { componentName: 'ObjectSetter', props: { config: { items: [labelConfig, nameConfig, typeConfig, disabledProps, previewProps, requiredProps, { name: 'width', title: { label: '列宽', tip: 'width | 列宽' }, supportVariable: false, setter: 'NumberSetter' }, defaultValueProps, decoratorProps, propsProps, { name: 'component', title: { label: '表单项组件', tip: 'component | 表单项组件' }, defaultValue: 'Input', // important: true, supportVariable: false, setter: { componentName: 'SelectSetter', props: { options: [].concat(baseComponent, [{ label: '删除', value: 'RCArrayTable.Remove' }, { label: '上移', value: 'RCArrayTable.MoveUp' }, { label: '下移', value: 'RCArrayTable.MoveDown' }, { label: '自定义组件', value: '' }]) } } }, customComponentProps, componentPropsProps] } }, initialValue: { title: '标题', name: (0, _utils.uuid)(), component: 'PreviewText.Input', props: { feedbackLayout: 'terse' } } } } } }] } } }, extraProps: { setValue: function setValue(target, value) { if (value === void 0) { value = []; } var children = value.map(function (v) { var _v$title = v.title, title = _v$title === void 0 ? '标题' : _v$title, width = v.width, rest = (0, _objectWithoutPropertiesLoose2["default"])(v, _excluded); return { type: 'void', component: 'RCArrayTable.Column', decorator: 'void', componentProps: { title: title, align: 'left', width: width }, children: [rest] }; }); target.parent.setPropValue('items', { type: 'object', decorator: 'void', children: children }); return children; } }, condition: function condition(target) { return ['RCArrayTable'].includes((0, _utils.getPropValueWithPath)(target, '.component')); } }; var arrayItemsItemsProps = exports.arrayItemsItemsProps = { type: 'object', setter: { componentName: 'ObjectSetter', props: { config: { items: [ // { // name: '_type', // title: { label: '配置项类型', tip: '_type | 配置项类型' }, // setter: { // componentName: 'RadioGroupSetter', // props: { // options: [ // { // title: '简单字符串', // value: 'string', // }, // { // title: '复杂对象', // value: 'object', // }, // ], // }, // }, // }, { name: '_children', condition: false, title: { label: '子表单项配置', tip: 'children | 子表单项配置' }, setter: { componentName: 'ArraySetter', props: { itemSetter: { componentName: 'ObjectSetter', props: { config: { items: [labelConfig, nameConfig, typeConfig, disabledProps, previewProps, requiredProps, defaultValueProps, decoratorProps, propsProps, { name: 'component', title: { label: '表单项组件', tip: 'component | 表单项组件' }, defaultValue: 'Input', // important: true, supportVariable: false, setter: { componentName: 'SelectSetter', props: { options: [].concat(baseComponent, [{ label: '删除', value: 'RCArrayItems.Remove' }, { label: '上移', value: 'RCArrayItems.MoveUp' }, { label: '下移', value: 'RCArrayItems.MoveDown' }, { label: '自定义组件', value: '' }]) } } }, componentPropsProps] } }, initialValue: { name: (0, _utils.uuid)(), component: 'Input', props: { feedbackLayout: 'terse' } } } } } }] } } }, extraProps: { setValue: function setValue(target, value) { if (value === void 0) { value = []; } // const children = value.map((v) => { // const { title = '标题', ...rest } = v; // console.log('rest', rest); // return { // type: 'void', // component: 'Space', // decorator: null, // children: [rest], // }; // }); target.parent.setPropValue('items', { type: 'void', component: 'Space', decorator: 'void', children: value }); } }, condition: function condition(target) { return ['RCArrayItems'].includes((0, _utils.getPropValueWithPath)(target, '.component')); } }; // gpt相关项 // const gptProps = { // name: 'getTableData', // title: '数据请求', // supportVariable: false, // gpt: { // type: 'api', // name: '数据请求', // description: '数据请求', // funcParams: ['value', 'field'], // 配置函数的参数名字 // }, // setter: { // componentName: 'DatasourceSetter', // }, // }; var BaseFormItemProps = exports.BaseFormItemProps = [formItemListProps, customComponentProps, // primaryKeyConfig, labelConfig, nameConfig, typeConfig, requiredProps, disabledProps, previewProps, defaultValueProps, visibleProps, descriptionProps, rulesProps, propsProps, decoratorProps, enumConfig, arrayTableItemsProps, arrayItemsItemsProps, componentPropsProps, reactionsProps, childrenProps]; var tableFormItemProps = exports.tableFormItemProps = [formItemListProps, nameConfig, typeConfig, descriptionProps, defaultValueProps, requiredProps, disabledProps, previewProps, decoratorProps, propsProps, rulesProps, reactionsProps, componentPropsProps, enumConfig]; var FormItemsProps = exports.FormItemsProps = [{ name: 'items', title: { label: '表单项配置', tip: 'items | 表单项配置' }, extraProps: { display: 'accordion' // defaultCollapsed: true, }, setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: 'ArraySetter', props: { itemSetter: { componentName: 'ObjectSetter', props: { descriptor: 'name', config: { items: BaseFormItemProps } } // initialValue: () => { // const mockProps: any = {}; // BaseFormItemProps.forEach((item) => { // if (item.defaultValue) { // if (typeof item.defaultValue === 'function') { // mockProps[item.name] = item.defaultValue(); // } else { // mockProps[item.name] = item.defaultValue; // } // } // }); // return { // component: 'Input', // ...mockProps, // }; // }, } } }, { componentName: 'CustomJsonSetter', props: { btnText: '去配置', titleText: '配置数据' } }] } } }];