UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

987 lines (808 loc) 32.5 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultItem = defaultItem; exports.defaultFormSchemaItem = defaultFormSchemaItem; exports.defaultFormSchema = defaultFormSchema; exports.defaultFormInfo = defaultFormInfo; exports.itemTranslSchema = itemTranslSchema; exports.listTranslSchema = listTranslSchema; exports.getInitData = getInitData; exports.getDefaultInitData = getDefaultInitData; exports.getFRInitData = getFRInitData; exports.jsonToListOfForm = jsonToListOfForm; exports.defaultColumn = defaultColumn; exports.defaultColumnSchema = defaultColumnSchema; exports.defaultColumnInfo = defaultColumnInfo; exports.getTableColumns = getTableColumns; exports.getTableWidth = getTableWidth; exports.jsonToListOfColumn = jsonToListOfColumn; exports.defaultHandleInfo = defaultHandleInfo; exports.getTableHandle = getTableHandle; exports.getTableBtn = getTableBtn; exports.getTableTab = getTableTab; exports.defaultPageInfo = defaultPageInfo; exports.getCPDic = getCPDic; exports.getCPDicList = getCPDicList; exports.getId = getId; exports.getName = getName; exports.getDisabled = getDisabled; exports.getChildren = getChildren; exports.getDicTrue = getDicTrue; exports.getDefault = getDefault; exports.getDefaultRangeToday = getDefaultRangeToday; var _react = _interopRequireDefault(require("react")); var _request = require("../net/request"); var Api = _interopRequireWildcard(require("../net/api")); var _config = _interopRequireDefault(require("../config")); var commonUtils = _interopRequireWildcard(require("./commonUtils")); var _lodash = require("lodash"); var _QuestionCircle = _interopRequireDefault(require("../component/QuestionCircle")); var _validator = require("validator"); var _moment = _interopRequireDefault(require("moment")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var DEFAULTFORMITEM = { key: "", // 传参名 、、 字段名 label: "", // 显示名 type: "5fba5336e126bfe143d7c75e", // 表单类型 columns: 1, // 占列数,默认1 isRequired: "5fb8b922e2559fcd82cad4d3", // 是否必选 selectTrue: "5fb8b91ae2559fcd82cad4d2", // 默认显示 dicSource: "38", // 字典来源 dic: "", // 选择 枚举 父id level: 5, // 联级、树形 选择 多少层级 changeOnSelect: "5fb8b922e2559fcd82cad4d3", // 联级选择是否 记录父级 dicStatic: null, // 静态字典数据 dicDefault: null // 默认选中,匹配不上则默认选择首项 }; var DEFAULTFORMSCHEMAITEM = { // "title": "label显示名", type: "string", //默认string,还有对象、数字、数组等等 ,需动态配置 ;range 区间 需要与format: date dateTime 一起使用 "ui:width": "100%" // "ui:className": "scale-label", ///配置样式,不常使用 // 'ui:hidden': (value, rootValue) => rootValue.fixedSwitch, //是否隐藏,后面为联动操作 //default: //配置默认值 // 'ui:widget': 'selectCascader', //自定义组件配置 // commonProps: { //自定义组件配置 // url: Api.getDictionaries, // params: { level: 5, id: '5fc755cdd36820f941198b21' }, // requestFunc: getNew, // }, // "ui:options": { //透传配置,一般为antd组件透传使用 // fieldNames: { label: 'name', value: 'id', children: 'children' }, // changeOnSelect: true // }, // pattern: '^((?!(dev.|.wapa.|.waptest.|pre-|.pre.|daily)).)*$',//添加正则 // format: 'email' //校验判断 参考 https://yuque.antfin-inc.com/zht/collect/divnm5 date。dateTime // "ui:width": "66%" //设置宽度,需动态配置,做成最外层配置最好 }; var DEFAULTFORMSCHEMA = { // labelWidth: 135, label宽度 :默认120 TODO 需可动态配置 displayType: "row", formData: {}, propsSchema: { type: "object", required: [], // 必填项判断:只能判断null undefined,不能判断空数组,需要注意【】 TODO 需可动态配置 properties: {} //具体表单内容,基本为封装该对象内容 } }; var DEFAULTFORMINFO = { formItems: [] }; function defaultItem() { return JSON.parse(JSON.stringify(DEFAULTFORMITEM)); } function defaultFormSchemaItem() { return JSON.parse(JSON.stringify(DEFAULTFORMSCHEMAITEM)); } function defaultFormSchema() { return JSON.parse(JSON.stringify(DEFAULTFORMSCHEMA)); } function defaultFormInfo() { return JSON.parse(JSON.stringify(DEFAULTFORMINFO)); } function itemTranslSchema(item, columnWidth) { var _item$isSelected; var itemSchema = defaultFormSchemaItem(); // 默认为输入框 itemSchema.title = item.label; // label提示 if (item.remark) { itemSchema.description = item.remark; itemSchema["ui:showDescIcon"] = true; } // 计算宽度 : "50%", itemSchema["ui:width"] = "".concat(columnWidth * (item.columns || 1), "%"); // 添加提示语 var antdProps = {}; try { antdProps = JSON.parse(item.antdProps); } catch (e) {} itemSchema["ui:options"] = antdProps; var isSelected = (_item$isSelected = item.isSelected) !== null && _item$isSelected !== void 0 ? _item$isSelected : true; itemSchema["ui:hidden"] = !isSelected; switch (item.type) { case "5fba5336e126bfe143d7c75f": // 下拉单选 itemSchema["ui:widget"] = "selectCommon"; itemSchema.commonProps = setDicSchema(item, itemSchema); itemSchema.commonProps.labelInValue = item.labelInValue; break; case "5fba5336e126bfe143d7c760": // 下拉多选 itemSchema["ui:widget"] = "selectCommon"; itemSchema["ui:options"] = _objectSpread({ mode: "multiple" }, antdProps); itemSchema.commonProps = setDicSchema(item, itemSchema); break; case "checkbox_duoxuanbiaodan": // 点击多选 itemSchema["ui:widget"] = "checkboxCommon"; itemSchema.commonProps = setDicSchema(item, itemSchema); break; case "radio_dianjidanxuan": // 点击单选 itemSchema["ui:widget"] = "radioCommon"; itemSchema.commonProps = setDicSchema(item, itemSchema); break; case "5fd9ae46a28bd54e44773290": // 树形多选 itemSchema.default = "该组件还在酝酿中。。。"; break; case "5fba5336e126bfe143d7c761": // 级联选择 itemSchema["ui:widget"] = "selectCascader"; itemSchema["ui:options"] = _objectSpread(_objectSpread({}, antdProps), {}, { // 组件内 续统一处理为通用fieldNames // fieldNames: { // label: item.dicApi?.text || "preName", // value: item.dicApi?.key || "id", // children: item.children || "children" // }, changeOnSelect: getDicTrue(item.changeOnSelect) }); itemSchema.commonProps = setDicSchema(item, itemSchema); break; case "5fba535ce126bfe143d7c763": //时间区间 itemSchema.type = "range"; case "5fba535ce126bfe143d7c762": //时间单选 itemSchema.format = "time"; break; case "5fd9ab0fa28bd54e4477328b": //日期区间 itemSchema.type = "range"; case "5fd9ab0fa28bd54e4477328a": //日期单选 itemSchema.format = "date"; break; case "5fd9ab0fa28bd54e4477328d": //日期时间区间 itemSchema.type = "range"; case "5fd9ab0fa28bd54e4477328c": //日期时间 itemSchema.format = "dateTime"; break; case "5fd9ab71a28bd54e4477328e": //数字输入框 itemSchema.type = "number"; break; case "5fd9ab71a28bd54e4477328f": //数字区间输入框 itemSchema["ui:widget"] = "inputInterval"; break; case "gudingcanshu_xianshibukexiugai": // 固定参数,显示不隐藏 itemSchema["ui:widget"] = "smText"; break; case "gudingcanshu_yincangbuxianshi": // 固定参数,隐藏不显示 itemSchema["ui:hidden"] = true; case "gudingcanshu_bukebianji": // 固定参数,显示不可编辑 itemSchema["ui:disabled"] = true; case "5fba5336e126bfe143d7c75e": // 输入框 default: // 默认为输入框 break; } // 初始化默认值 itemSchema.default = getDefault(item.dicDefault, itemSchema.type, itemSchema.format); return itemSchema; } function setDicSchema(item, itemSchema) { var _item$dicApi, _itemSchema$uiOption; var commonProps = {}; try { switch (item.dicSource) { case "39": // 请求 参数配置暂不支持 ,暂时支持get请求 commonProps = _objectSpread(_objectSpread({}, item.dicApi), {}, { url: commonUtils.getUrl(item.dicApi.url), requestFunc: _config.default.getCPInfo().requestFunc || _request.getNew, params: commonUtils.isObj((_item$dicApi = item.dicApi) === null || _item$dicApi === void 0 ? void 0 : _item$dicApi.params) ? item.dicApi.params : {} }); break; case "40": // 静态 commonProps.list = item.dicStatic; break; case "38": // 平台 default: // 是否为新字典数据源 var isNewNet = !((_itemSchema$uiOption = itemSchema["ui:options"]) === null || _itemSchema$uiOption === void 0 ? void 0 : _itemSchema$uiOption.isOldDic); // 平台请求接口统一走网关 commonProps.requestFunc = isNewNet ? _request.getDicDetails : _request.getNew; commonProps.url = isNewNet ? Api.getDictionaries : Api.getDictionariesOld; commonProps.params = { level: item.level, pid: item.dic[item.dic.length - 1], code: item.dic[item.dic.length - 1] // 新接口 所需参数 code }; commonProps.okPath = "data"; break; } } catch (error) { commonUtils.log("setDicSchema", error); } return commonProps; } function listTranslSchema(formList) { var formColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var formData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var formSchema = defaultFormSchema(); formSchema.formData = formData; var columnWidth = parseInt(100 / formColumn); if (Array.isArray(formList)) { var _iterator = _createForOfIteratorHelper(formList), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var i = _step.value; // TODO 需要计算宽度 formSchema.propsSchema.properties[i.key] = itemTranslSchema(i, columnWidth); if (i.labelInValue) { formSchema.propsSchema.properties[i.labelInValue] = itemTranslSchema({ type: "gudingcanshu_yincangbuxianshi" }, columnWidth); } getDicTrue(i.isRequired) && formSchema.propsSchema.required.push(i.key); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } return formSchema; } /** * 从formList获取总initData * @param {FR的schema} formList * @returns 初始值对象 */ function getInitData(formList) { var ret = {}; var _iterator2 = _createForOfIteratorHelper(formList), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var item = _step2.value; var defaultValue = getDefault(item.dicDefault, item.type, item.format); defaultValue && (ret[item.key] = item.dicDefault); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } return ret; } /** * 从formList获取固定传参initData * @param {FR的schema} formList * @returns 初始值对象 */ function getDefaultInitData(formList) { // 获取固定传参list var defaultList = formList.filter(function (i) { return i.type === "gudingcanshu_yincangbuxianshi" || i.type === "gudingcanshu_bukebianji"; }); return getInitData(defaultList); } /** * 从FR的schema获取总initData * @param {FR的schema} frSchema * @returns 初始值对象 */ function getFRInitData(frSchema) { var ret = _objectSpread({}, frSchema.formData); var tmpDefault; try { for (var key in frSchema.propsSchema.properties) { try { tmpDefault = frSchema.propsSchema.properties[key].default; if (!(0, _lodash.isEmpty)(tmpDefault)) { ret[key] = frSchema.propsSchema.properties[key].default; } } catch (_unused) {} } } catch (_unused2) {} return ret; } /** * json格式数据快速转为form数组对象 * @param {json} json * @param {默认类型} type * @returns */ function jsonToListOfForm(json, type) { try { var forms = JSON.parse(json); var formItems = []; for (var key in forms) { formItems.push(_.assign(defaultItem(), { type: type, key: key, label: forms[key] })); } return formItems; } catch (e) { console.error("JSON格式错误-------:", json); throw e; } } /** * ************************************* * 以上是Form * ***分割线*** * 以下是Column * ************************************* */ var DEFAULTCOLUMNITEM = { isSort: "5fb8b922e2559fcd82cad4d3", // 是否支持排序 selectTrue: "5fb8b91ae2559fcd82cad4d2", // 默认显示 dataIndex: "", // key title: "", // 列名 width: 150, // 列宽 align: "left" // 对齐方式 }; var DEFAULTCOLUMNINFO = { columnItems: [] }; function defaultColumn() { return JSON.parse(JSON.stringify(DEFAULTCOLUMNITEM)); } function defaultColumnSchema() { return JSON.parse(JSON.stringify([])); } function defaultColumnInfo() { return JSON.parse(JSON.stringify(DEFAULTCOLUMNINFO)); } function getTableColumns() { return _getTableColumns.apply(this, arguments); } function _getTableColumns() { _getTableColumns = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var list, lastEnum, result, _list, len, _loop, i, _args2 = arguments; return regeneratorRuntime.wrap(function _callee$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: list = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : []; _list = []; len = list.length; _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop(i) { var _result, label, title, remark, isSort, noEllipsis, renderType, filterMultiple, _setDicSchema, dicStatic, requestFunc, url, params, okPath, key, text, children, req; return regeneratorRuntime.wrap(function _loop$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: lastEnum = null; result = list[i]; _result = result, label = _result.label, title = _result.title, remark = _result.remark, isSort = _result.isSort, noEllipsis = _result.noEllipsis, renderType = _result.renderType, filterMultiple = _result.filterMultiple; result.label = label || title; result.ellipsis = !getDicTrue(noEllipsis); _context.prev = 5; _context.t0 = renderType; _context.next = _context.t0 === "column_enum" ? 9 : _context.t0 === "column_search" ? 19 : 20; break; case 9: // 获取 枚举配置信息 _setDicSchema = setDicSchema(c, {}), dicStatic = _setDicSchema.dicStatic, requestFunc = _setDicSchema.requestFunc, url = _setDicSchema.url, params = _setDicSchema.params, okPath = _setDicSchema.okPath, key = _setDicSchema.key, text = _setDicSchema.text, children = _setDicSchema.children; lastEnum = dicStatic; // 静态枚举 if (!(!(0, _lodash.isArray)(lastEnum) && requestFunc)) { _context.next = 16; break; } _context.next = 14; return requestFunc(url, showSearch ? _params : params, okPath); case 14: req = _context.sent; lastEnum = commonUtils.getFirstList(req); case 16: lastEnum = getCPDicList(lastEnum, key, text, children); if (lastEnum) { result.filters = lastEnum; result.filterMultiple = getDicTrue(filterMultiple); } return _context.abrupt("break", 20); case 19: return _context.abrupt("break", 20); case 20: _context.next = 24; break; case 22: _context.prev = 22; _context.t1 = _context["catch"](5); case 24: // 添加备注提示 if (remark) { result.title = function () { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_QuestionCircle.default, { title: remark, style: { marginRight: "4px" } }), label || title); }; } // 添加排序 if (getDicTrue(isSort)) { result.sorter = true; result.sortDirections = ["descend", "ascend"]; } _list.push(result); case 27: case "end": return _context.stop(); } } }, _loop, null, [[5, 22]]); }); i = 0; case 5: if (!(i < len)) { _context2.next = 10; break; } return _context2.delegateYield(_loop(i), "t0", 7); case 7: i++; _context2.next = 5; break; case 10: return _context2.abrupt("return", _list); case 11: case "end": return _context2.stop(); } } }, _callee); })); return _getTableColumns.apply(this, arguments); } function getTableWidth(columns) { var tableWidth = 0; columns.forEach(function (item) { tableWidth += item.width || 150; }); return tableWidth; } function jsonToListOfColumn(json) { try { var jsonObj = JSON.parse(json); var columns = Array.isArray(jsonObj) ? jsonObj[0] : jsonObj; var columnItems = []; for (var key in columns) { columnItems.push(_.assign(defaultColumn(), { dataIndex: key, title: columns[key] })); } return columnItems; } catch (e) { console.error("JSON格式错误-------:", json); throw e; } } /** * ************************************* * 以上是Column * ***分割线*** * 以下是Table-Handle * ************************************* */ var DEFAULTHANDLEINFO = { rowSelection: "5fb8b922e2559fcd82cad4d3", rowKey: "id", handleItems: [] }; function defaultHandleInfo() { return JSON.parse(JSON.stringify(DEFAULTHANDLEINFO)); } // 获取表行操作按键 差异在action function getTableHandle(handleItems) { var ret = { btn: false, acl: [] }; if (!handleItems) return ret; ret.btn = []; var _iterator3 = _createForOfIteratorHelper(handleItems), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var action = _step3.value; if (action.aclPermissionCode) ret.acl.push(action.aclPermissionCode); ret.btn.push(_objectSpread(_objectSpread({}, action), {}, { text: action.label, action: "$func.".concat(action.funcType && "33" !== action.funcType ? "onSdkTableHandle" : action.funcName), content: action.content, funcType: action.funcType })); } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } return ret; } // 获取表头操作按键 差异在action function getTableBtn(handleItems) { var ret = { btn: false, acl: [], openCustomColumns: false // 用户自定义表头开关 }; if (!handleItems) return ret; ret.btn = []; var _iterator4 = _createForOfIteratorHelper(handleItems), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var action = _step4.value; if (action.aclPermissionCode) ret.acl.push(action.aclPermissionCode); var btnItem = _objectSpread(_objectSpread({}, action), {}, { text: action.label, action: "$func.".concat(action.funcType && "33" === action.funcType ? action.funcName : "onSdkTableBtn"), renderFunc: action.renderFunc ? "$func.".concat(action.renderFunc) : "", // 自定义组件展示函数 content: action.content, funcType: action.funcType }); if ("37" === action.funcType) { try { // 下拉按键需对子按键进行处理 var _getTableBtn = getTableBtn(action.content.handleItems), tableHandle = _getTableBtn.btn, tableAcl = _getTableBtn.acl, customColumns = _getTableBtn.openCustomColumns; action.content.handleItems = tableHandle; ret.acl = ret.acl.concat(tableAcl); if (!ret.openCustomColumns && customColumns) { ret.openCustomColumns = true; } } catch (_unused3) {} } else if (!ret.openCustomColumns && "38" === action.funcType) { ret.openCustomColumns = "38" === action.funcType; } ret.btn.push(btnItem); } } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } return ret; } // 获取表Tab操作按键 差异在action function getTableTab(handleItems, actionStr) { var ret = { btn: false, acl: [] }; if (!handleItems) return ret; ret.btn = []; var _iterator5 = _createForOfIteratorHelper(handleItems), _step5; try { for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { var action = _step5.value; if (action.aclPermissionCode) ret.acl.push(action.aclPermissionCode); ret.btn.push(_objectSpread(_objectSpread({}, action), {}, { text: action.label, action: actionStr, content: action.content, funcType: action.funcType })); } } catch (err) { _iterator5.e(err); } finally { _iterator5.f(); } return ret; } /** * ************************************* * 以上是Table-Handle * ***分割线*** * 以下是Page --- 包含Form、Column、Table-Handle * ************************************* */ var DEFAULTPAGE = { appId: "", // 应用id projectId: "", // 项目id form: DEFAULTFORMINFO, // 表单信息 table: DEFAULTCOLUMNINFO, // 表格信息 tableBtn: DEFAULTHANDLEINFO, // 表格操作区信息 handle: DEFAULTHANDLEINFO // 表格操作区信息 // 还需完善 }; function defaultPageInfo() { return JSON.parse(JSON.stringify(DEFAULTPAGE)); } /** * ************************************* * 以上是 Page --- 包含Form、Column、Table-Handle * ***分割线*** * 以下是 平台静态字典生成 * ************************************* */ function getCPDic(_ref) { var key = _ref.key, text = _ref.text, children = _ref.children, labels = _ref.labels; var listJson = labels === null || labels === void 0 ? void 0 : labels.trim(); var ret; try { var list = JSON.parse(listJson); return getCPDicList(list, key, text, children); } catch (e) { console.error("JSON格式错误-------:", listJson); throw e; } } function getCPDicList(list, key, text, children) { var ret; if (Array.isArray(list) && list.length) { ret = []; var realData; var _iterator6 = _createForOfIteratorHelper(list), _step6; try { for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { var i = _step6.value; realData = getCPDicItem(i, key, text, children); realData && ret.push(realData); } } catch (err) { _iterator6.e(err); } finally { _iterator6.f(); } } return ret; } function getCPDicItem(item, key, name, children) { if (!item) return false; var ret = {}; ret.id = getId(item, key); ret.title = getName(item, name); ret.value = ret.id; ret.label = ret.title; ret.text = ret.title; ret.disabled = item.disabled; // 暂时添加disabled var son = getCPDicList(getChildren(item, children), key, name, children); son && (ret.children = son); return ret.id ? ret : false; } function getId(item, key) { // 自定义key优先 // 旧数据结构 key优先 // 新增 新数据结构 code return (item[key] || item.key || item.code || item.id || item.type) + ""; } function getName(item, key) { // 自定义key优先 // 新增 新数据结构 code // 旧数据结构 preName兜底 return item[key] || item.value || item.title || item.name || item.preName; } function getDisabled(item, key) { // 自定义key优先 // 新增 新数据结构 code // 旧数据结构 disabled return item[key] || item.disabled; } function getChildren(item, key) { var son = item[key] || item.children; // 可以考虑配置首个list为children return son; } function getDicTrue(key) { return key === "5fb8b91ae2559fcd82cad4d2"; } function getDefault(dicDefault, type, format) { try { // 当初始值为json时,进行转化 对dicDefault优化处理 if (dicDefault && (0, _validator.isJSON)(dicDefault)) { // 如果有 today开始的时间区间 则进行转化 return getDefaultRangeToday(format, JSON.parse(dicDefault)); } // 暂时支持日期 区间特殊情况 如取最近多少天 var day = parseInt(dicDefault); if (day && type === "range") { if (format === "date") { return [(0, _moment.default)().subtract(day, "days").format("YYYY-MM-DD"), (0, _moment.default)().format("YYYY-MM-DD")]; } else if (format === "dateTime") { return [(0, _moment.default)().subtract(day, "days").format("YYYY-MM-DD HH:mm:ss"), (0, _moment.default)().format("YYYY-MM-DD HH:mm:ss")]; } } } catch (e) { console.log(e); } // 后期扩展类型转换 return dicDefault; } /** * * @param {日期格式} format * @param {默认值} defaultValue * @returns */ function getDefaultRangeToday(format, defaultValue) { try { // 命中 today时间区间 // 是日期 format // 数组长度 为2 // 有today 需要转化 if (format.includes("date") && defaultValue.length === 2 && (defaultValue[0] === "today" || defaultValue[1] === "today")) { // 后续可支持 today前后 n 天的配置 if (format === "date") { if (defaultValue[0] === "today") defaultValue[0] = (0, _moment.default)().format("YYYY-MM-DD"); if (defaultValue[1] === "today") defaultValue[1] = (0, _moment.default)().format("YYYY-MM-DD"); } else if (format === "dateTime") { if (defaultValue[0] === "today") defaultValue[0] = (0, _moment.default)().format("YYYY-MM-DD 00:00:00"); if (defaultValue[1] === "today") defaultValue[1] = (0, _moment.default)().format("YYYY-MM-DD 23:59:59"); } } } catch (e) { console.log(e); } return defaultValue; }