import { IPublicTypeComponentMetadata } from '@alilc/lowcode-types'; import snippets from './snippets'; const commonColumnProps = [ { "name": "title", "title": { "label": "title", "tip": "标题" }, "display": "inline", "propType": "string", "setter": "StringSetter", "isRequired": true, "defaultValue": "表单项" }, { "name": "valueType", "title": { "label": "valueType", "tip": "数据类型" }, "display": "inline", "propType": { "type": "oneOfType", "value": [ "string" ] }, "setter": [ { "componentName": "SelectSetter", "props": { "options": [ { "value": "password", "title": "密码输入框" }, { "value": "money", "title": "金额输入框" }, { "value": "textarea", "title": "文本域" }, { "value": "date", "title": "日期" }, { "value": "dateTime", "title": "日期时间" }, { "value": "dateWeek", "title": "周" }, { "value": "dateMonth", "title": "月" }, { "value": "dateQuarter", "title": "季度输入" }, { "value": "dateYear", "title": "年份输入" }, { "value": "dateRange", "title": "日期区间" }, { "value": "dateTimeRange", "title": "日期时间区间" }, { "value": "time", "title": "时间" }, { "value": "timeRange", "title": "时间区间" }, { "value": "text", "title": "文本" }, { "value": "select", "title": "下拉框" }, { "value": "treeSelect", "title": "树形下拉框" }, { "value": "checkbox", "title": "多选框" }, { "value": "rate", "title": "星级组件" }, { "value": "radio", "title": "单选框" }, { "value": "radioButton", "title": "按钮单选框" }, { "value": "progress", "title": "进度条" }, { "value": "percent", "title": "百分比" }, { "value": "digit", "title": "数字输入框" }, { "value": "second", "title": "秒格式化" }, { "value": "avatar", "title": "头像" }, { "value": "code", "title": "代码框" }, { "value": "switch", "title": "开关" }, { "value": "fromNow", "title": "相对于当前时间" }, { "value": "image", "title": "图片" }, { "value": "jsonCode", "title": "代码框,但是带了json格式化" }, { "value": "color", "title": "颜色选择器" }, { "value": "cascader", "title": "级联选择器" }, { "value": "segmented", "title": "分段器" }, { "value": "group", "title": "分组" }, { "value": "formList", "title": "表单列表" }, { "value": "formSet", "title": "表单集合" }, { "value": "divider", "title": "分割线" }, { "value": "dependency", "title": "依赖项" }, { "value": "useDefined", "title": "自定义" } ] } } ], "defaultValue": "text" }, { "name": "dataIndex", "title": { "label": "dataIndex", "tip": "数据字段" }, "propType": "string", "setter": "StringSetter", "isRequired": true, "defaultValue": "index_" }, { "name": "key", "title": { "label": "key", "tip": "一般用于dataIndex重复的情况" }, "propType": "string", "setter": "StringSetter" }, { "name": "tooltip", "title": { "label": "tooltip", "tip": "title旁边展示icon" }, "propType": "string", "setter": "StringSetter" }, { "name": "ellipsis", "title": { "label": "ellipsis", "tip": "是否自动缩略" }, "propType": "bool", "setter": "BoolSetter", "defaultValue": true }, { "name": "copyable", "title": { "label": "copyable", "tip": "是否支持复制" }, "propType": "bool", "setter": "BoolSetter", "defaultValue": false }, { "name": "valueEnum", "title": { "label": "valueEnum" }, "propType": { "type": "oneOfType", "value": [ "object", "func" ] }, "setter": [ "JsonSetter", "FunctionSetter", "VariableSetter" ] }, { "name": "fieldProps", "title": { "label": "fieldProps", "tip": "传给渲染组件的props" }, "propType": "func", "setter": [ { "componentName": "FunctionSetter", "template": "(form, config) => {}" }, "VariableSetter" ] }, { "name": "formItemProps", "title": { "label": "formItemProps", "tip": "传给Form.Item的props" }, "propType": "func", "setter": [ { "componentName": "FunctionSetter", "template": "(form, config) => {}" }, "VariableSetter" ] }, { "name": "renderText", "title": { "label": "renderText" }, "propType": "func", "setter": [ { "componentName": "FunctionSetter", "template": "(text, record, index, action) => {}" }, "VariableSetter" ] }, { "name": "render", "title": { "label": "render", "tip": "自定义只读模式的dom" }, "propType": "func", "setter": [ { "componentName": "SlotSetter", "title": "自定义只读模式的dom", "initialValue": { "type": "JSSlot", "params": [ "text", "record", "index", "action" ], "value": [] } }, { "componentName": "FunctionSetter", "props": { "template": "tableExtraRender(text, record, index, action){\n// 自定义只读模式的dom`}" } }, "VariableSetter" ] }, { "name": "renderFormItem", "title": { "label": "renderFormItem", "tip": "渲染查询表单的输入组件" }, "propType": "func", "setter": [ { "componentName": "SlotSetter", "title": "自定义编辑模式", "initialValue": { "type": "JSSlot", "params": [ "item", "{type, defaultRender, formItemProps, fieldsProps, ..rest}", "form" ], "value": [] } }, { "componentName": "FunctionSetter", "template": "(item, {type, defaultRender, formItemProps, fieldsProps, ..rest}, form) => {}" }, "VariableSetter" ] }, { "name": "request", "title": { "label": "request", "tip": "从远程请求网络数据,一般用于选择类组件" }, "propType": "func", "setter": [ { "componentName": "FunctionSetter", "template": "(params, props) => {\nreturn Promise<{label, value}[]>; }" }, "VariableSetter" ] }, { "name": "params", "title": { "label": "params", "tip": "额外传给request的参数" }, "propType": "object", "setter": [ "JsonSetter", "VariableSetter" ] }, { "name": "search", "title": { "label": "search", "tip": "搜索相关" }, "display": "inline", "defaultValue": true, "propType": { "type": "oneOfType", "value": [ "obejct", "bool" ] }, "setter": [ "BoolSetter", "JsonSetter" ] }, { "name": "search.transform", "title": { "label": "search.transform", "tip": "转化值的key,一般用于时间区间的转化" }, "propType": "func", "setter": "FunctionSetter" }, { "name": "editable", "title": { "label": "editable", "tip": "在编辑表格中是否可编辑" }, "defaultValue": false, "setter": "BoolSetter" }, { "name": "width", "title": { "label": "width", "tip": "列宽度" }, "propType": { "type": "oneOfType", "value": [ "string", "number" ] }, "setter": [ "NumberSetter", "StringSetter", "VariableSetter" ], "defaultValue": "md" }, { "name": "colSize", "title": { "label": "colSize", "tip": "一个标单项占用的格子数量" }, "propType": "number", "setter": "NumberSetter" }, { "name": "initialValue", "title": { "label": "initialValue", "tip": "查询表单初始值" }, "propType": "object", "setter": [ "MixSetter", "VariableSetter", "StringSetter" ] }, { "name": "sorter", "title": { "label": "sorter", "tip": "排序函数,本地排序使用一个函数,需要服务端排序可设为 true" }, "propType": { "type": "oneOfType", "value": [ "bool", "func" ] }, "setter": [ "BoolSetter", "FunctionSetter", "VariableSetter" ] }, { "name": "hideInTable", "title": { "label": "hideInTable", "tip": "在Table中不展示此列" }, "display": "inline", "setter": "BoolSetter" }, { "name": "hideInForm", "title": { "label": "hideInForm", "tip": "在Form中不展示此列" }, "display": "inline", "setter": "BoolSetter", "defaultValue": false }, { "name": "hideInSearch", "title": { "label": "hideInSearch", "tip": "在查询表单中不展示此列" }, "display": "inline", "setter": "BoolSetter" }, { "name": "hideInDescriptions", "title": { "label": "hideInDescriptions", "tip": "在Descriptions中不展示此列" }, "display": "inline", "setter": "BoolSetter" }, { "name": "filters", "title": { "label": "filters", "tip": "表头的筛选菜单项" }, "propType": { "type": "oneOfType", "value": [ "bool", "func" ] }, "setter": [ "BoolSetter", "FunctionSetter", "VariableSetter" ], "defaultValue": "false" }, { "name": "onFilter", "title": { "label": "onFilter", "tip": "筛选表单" }, "propType": "func", "setter": [ "FunctionSetter", "VariableSetter" ] }, { "name": "disable", "title": { "label": "disable", "tip": "列设置中disabled的状态" }, "display": "inline", "setter": "BoolSetter" } ]; const BetaSchemaFormMeta: IPublicTypeComponentMetadata = { "componentName": "BetaSchemaForm", "docUrl": "", "screenshot": "", "devMode": "proCode", "category": "数据录入", "group": "精选组件", "npm": { "package": "pro-material", "version": "0.1.0", "exportName": "BetaSchemaForm", "main": "src/index.tsx", "destructuring": true, "subName": "" }, "props": [ { name: 'ref', title: { label: 'ref', tip: '通过this.$(\'xxx\')获取组件实例' }, "defaultValue": () => { return `form_}` }, setter: 'StringSetter', supportVariable: true }, { "name": "layoutType", title: { label: 'layoutType', tip: '表单布局' }, "propType": { "type": "oneOf", "value": ["Form", "ModalForm", "DrawerForm", "StepsForm", "StepForm", "lightFilter", "Embed"] }, "setter": { "componentName": "SelectSetter", "props": { "options": [ { "title": "Form", "value": "Form" }, { "title": "ModalForm", "value": "ModalForm" }, { "title": "DrawerForm", "value": "DrawerForm" }, { "title": "StepsForm", "value": "StepsForm" }, { "title": "StepForm", "value": "StepForm" }, { "title": "lightFilter", "value": "lightFilter" }, { "title": "QueryFilter", "value": "QueryFilter" }, { "title": "Embed", "value": "Embed" } ], } }, "defaultValue": "Form", }, { "name": "open", title: { label: 'open', tip: '是否打开' }, setter: [{ "componentName": "BoolSetter", "defaultValue": true }, "VariableSetter"], condition: (target) => { const layoutType = target.getProps().getPropValue('layoutType') ; return layoutType === 'ModalForm' || layoutType === 'DrawerForm'; } }, { "name": "onOpenChange", title: { label: 'onOpenChange', tip: 'visible 改变时触发' }, setter: [{ "componentName": "FunctionSetter", "props": { "template": "(open:boolean)=>void" } }, "VariableSetter"], condition: (target) => { const layoutType = target.getProps().getPropValue('layoutType') ; return layoutType === 'ModalForm' || layoutType === 'DrawerForm'; } }, { "name": "trigger", "title": { "label": "trigger", "tip": "表单触发按钮" }, "propType": "slot", "setter": [ { "componentName": "SlotSetter", "title": "表单触发按钮" }, "VariableSetter" ] }, { "type": "field", "name": "columns", "title": "columns", "extraProps": { "display": "accordion" }, "setter": [ { "componentName": "ArraySetter", "props": { "itemSetter": { "componentName": "ObjectSetter", "props": { "config": { "items": commonColumnProps } } } } }, { "componentName": "ObjectSetter", "props": { "config": { "items": commonColumnProps } } } ] }, { "name": "shouldUpdate", "title": { "label": "shouldUpdate", "tip": "是否渲染" }, "setter": [ { "componentName": "FunctionSetter", "props": { "template": "(newValues,oldValues){\n// return false`}" } }, { "componentName": "BoolSetter", "defaultValue": false }, "VariableSetter" ] }, ], "configure": { "supports": { "style": true }, "component": {} } }; export default { ...BetaSchemaFormMeta, snippets };