@ywfe/materials-design
Version:
YwDesign for lowcode
1,534 lines (1,522 loc) • 42.7 kB
JavaScript
"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: '配置数据'
}
}]
}
}
}];