| import cloneDeep from 'lodash/cloneDeep'; |
|
|
| export const inputPropsBasic = [ |
| { |
| name: 'title', |
| title: { label: '标题', tip: 'title | 标题' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'code', |
| title: { label: '字段名', tip: 'key | 字段名' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'defaultValue', |
| title: { label: '默认值', tip: 'defaultValue | 默认值'}, |
| setter: 'StringSetter' |
| }, |
| { |
| name: 'props.placeholder', |
| title: { label: '提示文案', tip: 'placeholder | 提示文案' }, |
| setter: 'StringSetter' |
| }, |
| { |
| name: 'description', |
| title: { label: '补充说明', tip: 'description | 补充说明' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'tooltip.title', |
| title: { label: '气泡提示', tip: 'tooltip.title | 气泡提示文案' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'extra', |
| title: { label: '额外提示', tip: 'extra | 额外的提示信息'}, |
| setter: 'StringSetter' |
| }, |
| { |
| name: 'disabled', |
| title: { label: '禁用', tip: 'disabled | 禁用' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'hidden', |
| title: { label: '隐藏', tip: 'hidden | 隐藏' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'readOnly', |
| title: { label: '只读', tip: 'readOnly | 只读' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'readOnlyWidget', |
| title: { label: '只读组件', tip: 'readOnlyWidget | 只读组件' }, |
| setter: 'StringSetter', |
| condition: (target: any) => !!target.getProps().getPropValue('readOnly') |
| } |
| ]; |
|
|
| export const notInputPropsBasic = [ |
| { |
| name: 'title', |
| title: { label: '标题', tip: 'title | 标题' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'code', |
| title: { label: '字段名', tip: 'key | 字段名' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'defaultValue', |
| title: { label: '默认值', tip: 'defaultValue | 默认值'}, |
| setter: 'StringSetter' |
| }, |
| { |
| name: 'description', |
| title: { label: '补充说明', tip: 'description | 补充说明' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'tooltip', |
| title: { label: '气泡提示', tip: 'tooltip | 气泡提示文案' }, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'extra', |
| title: { label: '额外提示', tip: 'extra | 额外的提示信息'}, |
| setter: 'StringSetter' |
| }, |
| { |
| name: 'disabled', |
| title: { label: '禁用', tip: 'disabled | 禁用' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'hidden', |
| title: { label: '隐藏', tip: 'hidden | 隐藏' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'readOnly', |
| title: { label: '只读', tip: 'readOnly | 只读' }, |
| setter: 'FrExpressionSetter' |
| }, |
| { |
| name: 'readOnlyWidget', |
| title: { label: '只读组件', tip: 'readOnlyWidget | 只读组件' }, |
| setter: 'StringSetter', |
| condition: (target: any) => !!target.getProps().getPropValue('readOnly') |
| } |
| ]; |
|
|
| export const optionsProp = { |
| display: 'accordion', |
| name: 'props.options', |
| title: { label: '选项配置', tip: 'options | 选项配置' }, |
| setter: { |
| componentName: 'ArraySetter', |
| props: { |
| itemSetter: { |
| componentName: 'ObjectSetter', |
| initialValue: () => ({ |
| label: '选项名', |
| value: uuid() |
| }), |
| props: { |
| config: { |
| items: [ |
| { |
| name: 'label', |
| title: '选项名', |
| important: true, |
| setter: 'StringSetter', |
| }, |
| { |
| name: 'value', |
| title: '选项值', |
| setter: ['StringSetter', 'NumberSetter'], |
| important: true, |
| }, |
| { |
| name: 'disabled', |
| title: '禁用', |
| setter: 'JsonSetter', |
| } |
| ] |
| } |
| } |
| } |
| } |
| } |
| }; |
|
|
| export const getInputPropsBasic = (defaultValueProp: any, placeholder?: any) => { |
| const result = cloneDeep(inputPropsBasic); |
| result.splice(2, 0, defaultValueProp); |
| if (placeholder) { |
| result.splice(3, 0, defaultValueProp); |
| } |
| return result; |
| } |
|
|
| export const getNotInputPropsBasic = (defaultValueProp: any) => { |
| const result = cloneDeep(notInputPropsBasic); |
| result.splice(2, 0, defaultValueProp); |
| return result; |
| } |
|
|
| export const uuid = () => { |
| return ((Math.random() * 1e6) >> 0).toString(36); |
| }; |
|
|
| export const createMeta = (componentName: string, params: any) => { |
| return { |
| componentName, |
| docUrl: '', |
| screenshot: '', |
| devMode: 'proCode', |
| npm: { |
| package: '@ali/form-render-material', |
| version: '1.0.0', |
| exportName: componentName, |
| main: 'src/index.tsx', |
| destructuring: true, |
| subName: '', |
| }, |
| configure: { |
| supports: { |
| loop: false, |
| condition: false |
| }, |
| component: { |
| isContainer: false, |
| isModal: false, |
| nestingRule: { |
| parentWhitelist: ['FormRender', 'Card', 'CardList', 'TableList'] |
| } |
| }, |
| }, |
| group: '基础组件', |
| category: '常用', |
| icon: 'https://img.alicdn.com/imgextra/i4/O1CN01gxzRdT1hm9KXRbZkU_!!6000000004319-2-tps-200-200.png', |
| ...params |
| }; |
| } |
|
|
|
|