sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
538 lines (481 loc) • 16.5 kB
JavaScript
;
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;