@zzdadelu/schema-builder
Version:
通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成
251 lines • 6.93 kB
JavaScript
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import cloneDeep from 'lodash/cloneDeep';
export var 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: function condition(target) {
return !!target.getProps().getPropValue('readOnly');
}
}];
export var 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: function condition(target) {
return !!target.getProps().getPropValue('readOnly');
}
}];
export var optionsProp = {
display: 'accordion',
name: 'props.options',
title: {
label: '选项配置',
tip: 'options | 选项配置'
},
setter: {
componentName: 'ArraySetter',
props: {
itemSetter: {
componentName: 'ObjectSetter',
initialValue: function initialValue() {
return {
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 var getInputPropsBasic = function getInputPropsBasic(defaultValueProp, placeholder) {
var result = cloneDeep(inputPropsBasic);
result.splice(2, 0, defaultValueProp);
if (placeholder) {
result.splice(3, 0, defaultValueProp);
}
return result;
};
export var getNotInputPropsBasic = function getNotInputPropsBasic(defaultValueProp) {
var result = cloneDeep(notInputPropsBasic);
result.splice(2, 0, defaultValueProp);
return result;
};
export var uuid = function uuid() {
return (Math.random() * 1e6 >> 0).toString(36);
};
export var createMeta = function createMeta(componentName, params) {
return _objectSpread({
componentName: 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);
};