UNPKG

oadp-material

Version:
518 lines (513 loc) 18.9 kB
import _extends from "@babel/runtime/helpers/extends"; import { common } from '@alilc/lowcode-engine'; var OadpTableMeta = { "componentName": "OadpTable", "title": "高级表格", "category": "高级组件", "group": "低代码组件", "docUrl": "", "screenshot": "https://img.alicdn.com/tfs/TB1ZU1HuVT7gK0jSZFpXXaTkpXa-112-64.png", "devMode": "proCode", "npm": { "package": "oadp-material", "version": "{{version}}", "exportName": "OadpTable", "main": "src/index.tsx", "destructuring": true, "subName": "" }, "configure": { "props": [{ "name": "DataSetting", "title": "数据设置", "type": "group", "display": "block", "items": [{ "title": { "label": { "type": "i18n", "en-US": "DataSource", "zh-CN": "数据源" }, "tip": { "type": "i18n", "zh_CN": "属性: dataSource | 说明:设置表格数据源。", "en_US": "prop: dataSource | description: Set Table DataSource." } }, "name": "dataSource", "description": "数据源", "setter": { "componentName": "MixedSetter", "props": { "setters": ["JsonSetter", "ExpressionSetter"] } }, "supportVariable": true }, { "title": { "label": { "type": "i18n", "en-US": "PrimaryKey", "zh-CN": "数据主键" }, "tip": { "type": "i18n", "zh_CN": "属性: primaryKey | 说明:设置表格数据主键。dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中", "en_US": "prop: primaryKey | description: Set Table PrimaryKey." } }, "name": "primaryKey", "description": "数据源", "setter": "StringSetter", "supportVariable": true }] }, { "name": "DisplaySetting", "title": "显示设置", "type": "group", "display": "block", "items": [{ "title": { "label": { "type": "i18n", "en-US": "Table Layout", "zh-CN": "表格布局" }, "tip": { "type": "i18n", "zh_CN": "属性: table-layout | 说明:设为 fixed 表示内容不会影响列的布局,可选值:fixed=固定模式, auto=自动模式。默认为:auto。", "en_US": "prop: table-layout | description: Set to fixed to indicate that the content will not affect the layout of the column. Optional values: fixed=fixed mode, auto=automatic mode. The default is: auto." } }, "name": "tableLayout", "description": "表格元素的 table-layout 属性,设为 fixed 表示内容不会影响列的布局,可选值:fixed=固定模式, auto=自动模式。默认为:auto。", "setter": { "componentName": "RadioGroupSetter", "props": { "dataSource": [{ "label": "自动模式", "value": "auto" }, { "label": "固定模式", "value": "fixed" }], "options": [{ "label": "自动模式", "value": "auto" }, { "label": "固定模式", "value": "fixed" }] }, "initialValue": "auto" } }, { "title": { "label": { "type": "i18n", "en-US": "Size", "zh-CN": "尺寸模式" }, "tip": { "type": "i18n", "zh_CN": "属性: size | 说明: 尺寸模式,可选值:small=紧凑模式, medium=普通模式。默认为:medium。", "en_US": "prop: size | description: Size mode, optional values: small=compact mode, medium=normal mode. The default is: medium." } }, "name": "size", "description": "属性: size | 说明: 尺寸模式,可选值:small=紧凑模式, medium=普通模式。默认为:medium。", "setter": { "componentName": "RadioGroupSetter", "props": { "dataSource": [{ "label": "普通模式", "value": "medium" }, { "label": "紧凑模式", "value": "small" }], "options": [{ "label": "普通模式", "value": "medium" }, { "label": "紧凑模式", "value": "small" }] }, "initialValue": "medium" } }, { "title": { "label": { "type": "i18n", "zh_CN": "表格长度", "en_US": "TableWidth" }, "tip": { "type": "i18n", "zh_CN": "属性: tableWidth | 说明: 表格的总长度,可以这么用:设置表格总长度 、设置部分列的宽度,这样表格会按照剩余空间大小,自动其他列分配宽度", "en_US": "prop: tableWidth | description: The total length of the table, instructions for use: Set the total length of the table, set the width of some columns, so that the table will automatically allocate width to other columns according to the remaining space size" } }, "name": "tableWidth", "description": "表格长度", "setter": "NumberSetter", "supportVariable": true }, { "title": { "label": { "type": "i18n", "en-US": "Display Header", "zh-CN": "显示表头" }, "tip": { "type": "i18n", "zh_CN": "属性: hasHeader | 说明: 显示表头 | 类型: boolean | 默认值: true", "en_US": "prop: hasHeader | description: Display Header | type: boolean | default: true" } }, "name": "hasHeader", "description": "显示表头", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": true } }, { "title": { "label": { "type": "i18n", "en-US": "Fixed Header", "zh-CN": "固定表头" }, "tip": { "type": "i18n", "zh_CN": "属性: fixedHeader | 说明: 固定表头,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条 | 类型: boolean | 默认值: false", "en_US": "prop: fixedHeader | description: Fixed Header This attribute is used in conjunction with maxBodyHeight. When the height of the content area exceeds maxBodyHeight, a scrollbar will appear in the content area | type: boolean | default: false" } }, "name": "fixedHeader", "description": "固定表头", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": false }, "supportVariable": true }, { "title": { "label": { "type": "i18n", "en-US": "Sticky Header", "zh-CN": "置顶表头" }, "tip": { "type": "i18n", "zh_CN": "属性: stickyHeader | 说明: 置顶表头 滚动时锁定表头。 | 类型: boolean | 默认值: false", "en_US": "prop: stickyHeader | description: Sticky Header Lock the header when scrolling. | type: boolean | default: false" } }, "name": "stickyHeader", "description": "置顶表头", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": false }, "supportVariable": true }, { "title": { "label": { "type": "i18n", "zh_CN": "滚动高度", "en_US": "Max Body Height" }, "tip": { "type": "i18n", "zh_CN": "属性: maxBodyHeight | 说明: 最大内容区域的高度,在fixedHeader为true的时候,超过这个高度会出现滚动条。", "en_US": "prop: maxBodyHeight | description: The height of the maximum content area. When fixedHeader is true, a scrollbar will appear if it exceeds this height" } }, "name": "maxBodyHeight", "description": "表格长度", "setter": "NumberSetter", "supportVariable": true }, { "title": { "label": { "type": "i18n", "en-US": "Display Border", "zh-CN": "显示边框" }, "tip": { "type": "i18n", "zh_CN": "属性: hasBorder | 说明: 显示边框 | 类型: boolean | 默认值: true", "en_US": "prop: hasBorder | description: Display Border | type: boolean | default: true" } }, "name": "hasBorder", "description": "显示边框", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": true } }, { "title": { "label": { "type": "i18n", "en-US": "Display Zebra", "zh-CN": "显示条纹" }, "tip": { "type": "i18n", "zh_CN": "属性: isZebra | 说明: 显示条纹 | 类型: boolean | 默认值: false", "en_US": "prop: isZebra | description: Display Zebra | type: boolean | default: false" } }, "name": "isZebra", "description": "显示条纹", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": false } }, { "title": { "label": { "type": "i18n", "en-US": "Crossline", "zh-CN": "交叉显示" }, "tip": { "type": "i18n", "zh_CN": "属性: crossline | 说明: 交叉显示,在 hover 时出现十字参考轴,适用于表头比较复杂,需要做表头分类的场景。 | 类型: boolean | 默认值: false", "en_US": "prop: crossline | description: Crossline When hovering, a cross reference axis appears, which is suitable for scenarios where the header is complex and requires header classification. | type: boolean | default: false" } }, "name": "crossline", "description": "交叉显示", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": false }, "supportVariable": true }, { "title": { "label": { "type": "i18n", "en-US": "setEmptyContent", "zh-CN": "显示空占位符" }, "tip": { "type": "i18n", "zh_CN": "属性: setEmptyContent | 说明: 数据为空时显示空数据。 | 类型: boolean | 默认值: true", "en_US": "prop: setEmptyContent | description: Display empty data when the data is empty.. | type: boolean | default: true" } }, "name": "setEmptyContent", "description": "显示空占位符", "setter": { "componentName": "BoolSetter", "isRequired": false, "initialValue": true }, "supportVariable": true }] }], "supports": { "style": true }, "component": { "isContainer": true }, "advanced": { "callbacks": { "onNodeAdd": function onNodeAdd(dragment, currentNode) { var _dragmentSchema$props, _dragmentSchema$props2, _dragmentSchema$props3, _dragmentSchema$props4, _dragmentSchema$props5, _dragmentSchema$props6, _dragmentSchema$props7, _dragmentSchema$props8; console.log('onNodeAdd', dragment, currentNode); // 检查 dragment 是否为 null if (!dragment) { console.error('dragment is null'); return; } // 检查 currentNode 是否为 null if (!currentNode) { console.error('currentNode is null'); return; } // 检查 currentNode.document 是否为 null if (!currentNode.document) { console.error('currentNode.document is null'); return; } var dragmentSchema = dragment === null || dragment === void 0 ? void 0 : dragment.exportSchema(common.designerCabin.TransformStage.Save); console.log('dragment.exportSchema()', dragmentSchema); var name = (_dragmentSchema$props = dragmentSchema === null || dragmentSchema === void 0 ? void 0 : (_dragmentSchema$props2 = dragmentSchema.props) === null || _dragmentSchema$props2 === void 0 ? void 0 : _dragmentSchema$props2.name) !== null && _dragmentSchema$props !== void 0 ? _dragmentSchema$props : "默认名称"; var logicalName = (_dragmentSchema$props3 = dragmentSchema === null || dragmentSchema === void 0 ? void 0 : (_dragmentSchema$props4 = dragmentSchema.props) === null || _dragmentSchema$props4 === void 0 ? void 0 : _dragmentSchema$props4.logicalName) !== null && _dragmentSchema$props3 !== void 0 ? _dragmentSchema$props3 : "默认逻辑名称"; var attributeType = (_dragmentSchema$props5 = dragmentSchema === null || dragmentSchema === void 0 ? void 0 : (_dragmentSchema$props6 = dragmentSchema.props) === null || _dragmentSchema$props6 === void 0 ? void 0 : _dragmentSchema$props6.attributeType) !== null && _dragmentSchema$props5 !== void 0 ? _dragmentSchema$props5 : "STRING"; var referEntity = dragmentSchema === null || dragmentSchema === void 0 ? void 0 : (_dragmentSchema$props7 = dragmentSchema.props) === null || _dragmentSchema$props7 === void 0 ? void 0 : _dragmentSchema$props7.referEntity; var referAttribute = dragmentSchema === null || dragmentSchema === void 0 ? void 0 : (_dragmentSchema$props8 = dragmentSchema.props) === null || _dragmentSchema$props8 === void 0 ? void 0 : _dragmentSchema$props8.referAttribute; var dataIndex = logicalName; if (attributeType === "REFER" && referAttribute && typeof referAttribute === 'object' && 'logicalName' in referAttribute) { dataIndex = logicalName + '.name'; } // 如果拖拽到表格内,需要转换元素为表格列 var layoutPNode = currentNode.document.createNode({ "componentName": "OadpTableColumn", "props": { "title": name, "dataIndex": dataIndex, "htmlTitle": logicalName, "alignHeader": "center", "align": "center", "wordBreak": "all" } }); console.log('onNodeAdd OadpTable layoutPNode', layoutPNode); // 检查 layoutPNode 是否为 null if (!layoutPNode) { console.error('layoutPNode is null'); return; } // 当前dragment还未添加入node子节点,需要setTimeout处理 setTimeout(function () { currentNode.replaceChild(dragment, layoutPNode.exportSchema(common.designerCabin.TransformStage.Save)); }, 1); } } } } }; var snippets = [{ "title": "表格", "screenshot": "https://img.alicdn.com/tfs/TB1ZU1HuVT7gK0jSZFpXXaTkpXa-112-64.png", "schema": { "componentName": "OadpTable", "props": { "dataSource": [{ "name": "王小", "id": "1", "age": 15000, "role": "开发" }, { "name": "王中", "id": "2", "age": 25000, "role": "产品" }, { "name": "王大", "id": "3", "age": 35000, "role": "设计" }], "size": "medium", "hasBorder": false, "hasHeader": true, "isZebra": false, "fixedHeader": false, "stickyHeader": true, "crossline": false, "style": { "marginTop": "5px", "marginBottom": "5px", "marginLeft": "10px", "marginRight": "10px" } }, "children": [{ "componentName": "OadpTableColumn", "props": { "dataIndex": "name", "title": "名称", "htmlTitle": "name", "alignHeader": "center", "align": "center", "lock": false, "wordBreak": "all" }, "hidden": false, "isLocked": false, "condition": true, "conditionGroup": "" }, { "componentName": "OadpTableColumn", "props": { "dataIndex": "action", "title": "操作", "htmlTitle": "action", "width": 50, "alignHeader": "center", "align": "center", "lock": false, "wordBreak": "all", "cell": { "type": "JSSlot", "params": ["value", "index", "record"], "value": [{ "componentName": "OadpButtonBar", "props": { "direction": "row", "justify": "center", "align": "center" // "style": { // "width": "100px" // } }, "hidden": false, "title": "", "isLocked": false, "condition": true, "conditionGroup": "", "children": [{ "componentName": "OadpButton", "props": { "label": "编辑", "type": "primary", "size": "medium", "disabled": false, "style": { "marginLeft": "5px", "marginRight": "5px" }, "text": true }, "hidden": false, "title": "", "isLocked": false, "condition": true, "conditionGroup": "" }, { "componentName": "OadpButton", "props": { "label": "删除", "type": "primary", "size": "medium", "disabled": false, "style": { "marginLeft": "5px", "marginRight": "5px" }, "text": true }, "hidden": false, "title": "", "isLocked": false, "condition": true, "conditionGroup": "" }] }] } }, "hidden": false, "isLocked": false, "condition": true, "conditionGroup": "" }] } }]; export default _extends({}, OadpTableMeta, { snippets: snippets });