UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

538 lines (481 loc) 16.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.mockRequired = exports.mockSchema = exports.handleRequired = exports.handleSchema = exports.columnRequired = exports.columnSchema = exports.modalRequired = exports.modalSchema = exports.queryRequired = exports.querySchema = exports.pageRequiredUp = exports.pageRequired = exports.pageSchemaUp = exports.pageSchema = exports.getMoreObj = exports.tableMock = exports.tranBase = exports.todoObj = exports.handleBase = exports.columnBase = exports.formBase = exports.reqHandle = exports.reqQuery = exports.reqBase = exports.tabBase = exports.pageBase = void 0; require("antd/es/message/style"); var _message2 = _interopRequireDefault(require("antd/es/message")); var _lodash = _interopRequireDefault(require("lodash")); var _request = require("../net/request"); var Api = _interopRequireWildcard(require("../net/api")); var formUtils = _interopRequireWildcard(require("../utils/formUtils")); var ModalFactory = _interopRequireWildcard(require("../component/ModalFactory")); 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 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 pageBase = { pageFlag: { title: "页面路径", type: "string", "ui:options": { placeholder: "/开头,如/home" }, "ui:width": "50%" } }; /** * 页面包含多tab页 */ exports.pageBase = pageBase; var tabBase = { name: { title: "名称", type: "string", "ui:options": { placeholder: "名称" }, "ui:width": "50%" } }; /** * 接口基础信息 */ exports.tabBase = tabBase; var reqBase = { url: { title: "请求接口", type: "string", "ui:options": { placeholder: "请求接口" //,表格未配置默认取对应api中getList }, "ui:width": "50%" }, okPath: { title: "成功数据", type: "string", "ui:options": { placeholder: "默认 data;请求成功数据路径 " }, "ui:width": "25%" } }; exports.reqBase = reqBase; var reqQuery = { totalPath: { title: "表格总数", type: "string", "ui:options": { placeholder: "默认 data.count " }, "ui:width": "25%" } }; exports.reqQuery = reqQuery; var reqHandle = { okFunc: { title: "成功回调", type: "string", "ui:options": { placeholder: "默认refresh(res,fromData)" }, "ui:width": "25%" } }; /** * 查询项基础信息 */ exports.reqHandle = reqHandle; var formBase = { formItems: { title: "表单配置", type: "array", minItems: 1, "ui:options": { foldable: true }, items: { required: ["label", "key"], labelWidth: 80, type: "object", properties: { label: { title: "显示名", type: "string", "ui:width": "20%" }, key: { title: "传参名", type: "string", "ui:width": "20%" }, columns: { title: "占列数", type: "number", default: 1, "ui:width": "20%" }, type: { title: "类型", type: "string", "ui:widget": "selectCommon", commonProps: { url: Api.getDictionaries, params: { level: 1, pid: 22 }, requestFunc: _request.getNew }, default: "5fba5336e126bfe143d7c75e", "ui:width": "20%" }, isRequired: { title: "是否必填", type: "string", "ui:widget": "selectCommon", commonProps: { url: Api.getDictionaries, params: { level: 1, pid: 36 }, requestFunc: _request.getNew }, "ui:width": "20%", default: "5fb8b922e2559fcd82cad4d3" }, dic: { title: "枚举字典", type: "string", "ui:width": "20%", "ui:hidden": function uiHidden(value, rootValue) { return !(rootValue.type === "5fba5336e126bfe143d7c75f" || rootValue.type === "5fba5336e126bfe143d7c760" || rootValue.type === "5fba5336e126bfe143d7c761" || rootValue.type === "5fd9ae46a28bd54e44773290"); }, "ui:widget": "selectCascader", "ui:options": { fieldNames: { label: "preName", value: "id", children: "children" }, changeOnSelect: true }, commonProps: { url: Api.getProDictionaries, requestFunc: _request.getNew } }, level: { title: "几级选择", type: "number", //TODO 树形选择 default: 2, "ui:hidden": function uiHidden(value, rootValue) { return !(rootValue.type === "5fba5336e126bfe143d7c761" || rootValue.type === "5fd9ae46a28bd54e44773290"); }, "ui:width": "20%" }, changeOnSelect: { title: "可选上级", type: "string", //TODO 树形选择 default: "5fb8b922e2559fcd82cad4d3", "ui:hidden": function uiHidden(value, rootValue) { return rootValue.type !== "5fba5336e126bfe143d7c761"; }, "ui:width": "20%", "ui:widget": "selectCommon", commonProps: { url: Api.getDictionaries, params: { level: 1, pid: 36 }, requestFunc: _request.getNew } } } } } }; /** * 表头基础信息 */ exports.formBase = formBase; var columnBase = { columnItems: { title: "列表项配置", type: "array", minItems: 1, "ui:options": { foldable: true }, items: { required: ["title", "dataIndex"], labelWidth: 80, type: "object", properties: { title: { title: "列-Name", type: "string", "ui:width": "50%" }, dataIndex: { title: "列-Key", type: "string", "ui:width": "50%" } } } } }; /** * 表操作项基础信息 */ exports.columnBase = columnBase; var handleBase = { handleItems: { type: "array", items: { required: ["label", "funcName"], labelWidth: 80, type: "object", properties: { label: { title: "按键名", type: "string", "ui:width": "20%" }, funcName: { title: "函数名", type: "string", "ui:options": { placeholder: "本地函数必填" }, "ui:width": "30%" }, content: { title: "网络请求配置", type: "string", "ui:width": "35%", "ui:options": { placeholder: "配置无需本地" }, "ui:disabled": true }, btn: { type: "string", default: "内容配置", commonProps: { onClick: function onClick(formData, onChange, rootValue) { ModalFactory.showModalForm({ formSchema: getMoreObj(modalSchema, rootValue === null || rootValue === void 0 ? void 0 : rootValue.content, modalRequired), title: "操作弹框配置", width: 1300, request: { url: "", handleOk: function handleOk(formData, validate) { if (validate.length) return false; onChange("content", formData); return true; // 未写请求,故拦截请求。 } } }); } }, "ui:width": "15%", "ui:widget": "formBtn" } } } } }; exports.handleBase = handleBase; var todoObj = { handleType: { title: "操作类型", type: "html", default: "暂只支持网络请求:表单、二次确认、直接操作", "ui:width": "100%" } }; /** * 额外转化基础 */ exports.todoObj = todoObj; var tranBase = function tranBase(tran) { return { labels: { title: "批量(,分割)", type: "string", default: '{"corpId":"ID","name":"姓名","age":"年龄","hobby":"爱好","addr":"地址"}', "ui:options": { placeholder: "输入类型名称" }, "ui:width": "85%" }, btn: { type: "string", default: "转化", commonProps: { onClick: tran }, "ui:width": "15%", "ui:widget": "formBtn" } }; }; exports.tranBase = tranBase; var tableMock = { mockData: { title: "数据结构", type: "string", default: '{"request":{"name":"名称","content":"内容"},"response":{"ok":true,"status":200,"statusText":"错误或正确提示","data":{"rows":[{"id":"ID","name":"名称","content":"内容"}],"count":11}}}', "ui:options": { placeholder: '{"request":{"name":"名称","content":"内容"},"response":{"ok":true,"status":200,"statusText":"错误或正确提示","data":{"rows":[{"id":"ID","name":"名称","content":"内容"}],"count":11}}}' }, "ui:width": "75%" }, formTran: { type: "string", default: "转化为查询", commonProps: { onClick: function onClick(formData, onChange, rootValue) { try { var apiData = JSON.parse(formData.mockData); labelsBtn({ labels: JSON.stringify(apiData.request) }, onChange); } catch (_unused) { _message2.default.error("JSON格式错误-------:", formData === null || formData === void 0 ? void 0 : formData.mockData); } } }, "ui:width": "10%", "ui:widget": "formBtn" }, columnTran: { type: "string", default: "转化为列表", commonProps: { onClick: function onClick(formData, onChange, rootValue) { try { var apiData = JSON.parse(formData.mockData); var data = _lodash.default.get(apiData.response, formData.okPath || "data"); var rows = []; for (var key in data) { if (Array.isArray(data[key])) { rows = data[key]; break; } } columnsBtn({ labels: JSON.stringify(rows[0]) }, onChange); } catch (_unused2) { _message2.default.error("JSON格式错误-------:", formData === null || formData === void 0 ? void 0 : formData.mockData); } } }, "ui:width": "10%", "ui:widget": "formBtn" }, columnItems: { type: "string", "ui:hidden": true }, formItems: { type: "string", "ui:hidden": true }, tableData: { type: "string", "ui:hidden": true } }; exports.tableMock = tableMock; var getMoreObj = function getMoreObj(properties, formData) { var required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var common = formUtils.defaultFormSchema(); common.formData = formData; common.propsSchema.properties = properties; common.propsSchema.required = required; return common; }; exports.getMoreObj = getMoreObj; var labelsBtn = function labelsBtn(formData, onChange) { var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "formItems"; try { var formItems = formUtils.jsonToListOfForm(formData.labels); onChange && onChange(type, formItems); _message2.default.info("转化成功!"); } catch (_unused3) { _message2.default.error("JSON格式错误-------:", formData.labels); } }; var columnsBtn = function columnsBtn(formData, onChange) { var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "columnItems"; try { var columnItems = formUtils.jsonToListOfColumn(formData.labels); onChange && onChange(type, columnItems); _message2.default.info("转化成功!"); } catch (_unused4) { _message2.default.error("JSON格式错误-------:", formData.labels); } }; /** * 查询页-页基础信息配置 */ var pageSchema = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pageBase), tabBase), reqBase), reqQuery), tableMock); exports.pageSchema = pageSchema; var pageSchemaUp = _objectSpread(_objectSpread(_objectSpread({}, tabBase), reqBase), reqQuery); exports.pageSchemaUp = pageSchemaUp; var pageRequired = ["pageFlag", "name"]; exports.pageRequired = pageRequired; var pageRequiredUp = ["name"]; /** * 查询表单配置 */ // export const querySchema = { ...tranBase(labelsBtn), ...formBase }; exports.pageRequiredUp = pageRequiredUp; var querySchema = _objectSpread({}, formBase); exports.querySchema = querySchema; var queryRequired = []; /** * 弹框表单配置 */ // export const modalSchema = { ...reqBase, ...reqHandle, ...tabBase, ...tranBase(labelsBtn), ...formBase, ...todoObj }; exports.queryRequired = queryRequired; var modalSchema = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, reqBase), reqHandle), formBase), todoObj); exports.modalSchema = modalSchema; var modalRequired = ["url"]; /** * 表头配置 */ // export const columnSchema = { ...tranBase(columnsBtn), ...columnBase }; exports.modalRequired = modalRequired; var columnSchema = _objectSpread({}, columnBase); exports.columnSchema = columnSchema; var columnRequired = []; /** * 表操作项配置 */ exports.columnRequired = columnRequired; var handleSchema = _objectSpread({}, handleBase); exports.handleSchema = handleSchema; var handleRequired = []; /** * 表格tableMock */ exports.handleRequired = handleRequired; var mockSchema = _objectSpread({}, tableMock); exports.mockSchema = mockSchema; var mockRequired = []; exports.mockRequired = mockRequired;