sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
904 lines (770 loc) • 29.4 kB
JavaScript
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; }
import React from "react";
import { getDicDetails, getNew } from "../net/request";
import * as Api from "../net/api";
import CP from "../config";
import * as commonUtils from "./commonUtils";
import { isArray, isEmpty } from "lodash";
import QuestionCircle from "../component/QuestionCircle";
import { isJSON } from "validator";
import moment from "moment";
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: []
};
export function defaultItem() {
return JSON.parse(JSON.stringify(DEFAULTFORMITEM));
}
export function defaultFormSchemaItem() {
return JSON.parse(JSON.stringify(DEFAULTFORMSCHEMAITEM));
}
export function defaultFormSchema() {
return JSON.parse(JSON.stringify(DEFAULTFORMSCHEMA));
}
export function defaultFormInfo() {
return JSON.parse(JSON.stringify(DEFAULTFORMINFO));
}
export 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: CP.getCPInfo().requestFunc || 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 ? getDicDetails : 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;
}
export 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 初始值对象
*/
export 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 初始值对象
*/
export 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 初始值对象
*/
export 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 (!isEmpty(tmpDefault)) {
ret[key] = frSchema.propsSchema.properties[key].default;
}
} catch (_unused) {}
}
} catch (_unused2) {}
return ret;
}
/**
* json格式数据快速转为form数组对象
* @param {json} json
* @param {默认类型} type
* @returns
*/
export 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: []
};
export function defaultColumn() {
return JSON.parse(JSON.stringify(DEFAULTCOLUMNITEM));
}
export function defaultColumnSchema() {
return JSON.parse(JSON.stringify([]));
}
export function defaultColumnInfo() {
return JSON.parse(JSON.stringify(DEFAULTCOLUMNINFO));
}
export 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 (!(!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.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(QuestionCircle, {
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);
}
export function getTableWidth(columns) {
var tableWidth = 0;
columns.forEach(function (item) {
tableWidth += item.width || 150;
});
return tableWidth;
}
export 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: []
};
export function defaultHandleInfo() {
return JSON.parse(JSON.stringify(DEFAULTHANDLEINFO));
} // 获取表行操作按键 差异在action
export 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
export 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
export 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 // 表格操作区信息
// 还需完善
};
export function defaultPageInfo() {
return JSON.parse(JSON.stringify(DEFAULTPAGE));
}
/**
* *************************************
* 以上是 Page --- 包含Form、Column、Table-Handle
* ***分割线***
* 以下是 平台静态字典生成
* *************************************
*/
export 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;
}
}
export 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;
}
export function getId(item, key) {
// 自定义key优先
// 旧数据结构 key优先
// 新增 新数据结构 code
return (item[key] || item.key || item.code || item.id || item.type) + "";
}
export function getName(item, key) {
// 自定义key优先
// 新增 新数据结构 code
// 旧数据结构 preName兜底
return item[key] || item.value || item.title || item.name || item.preName;
}
export function getDisabled(item, key) {
// 自定义key优先
// 新增 新数据结构 code
// 旧数据结构 disabled
return item[key] || item.disabled;
}
export function getChildren(item, key) {
var son = item[key] || item.children; // 可以考虑配置首个list为children
return son;
}
export function getDicTrue(key) {
return key === "5fb8b91ae2559fcd82cad4d2";
}
export function getDefault(dicDefault, type, format) {
try {
// 当初始值为json时,进行转化 对dicDefault优化处理
if (dicDefault && isJSON(dicDefault)) {
// 如果有 today开始的时间区间 则进行转化
return getDefaultRangeToday(format, JSON.parse(dicDefault));
} // 暂时支持日期 区间特殊情况 如取最近多少天
var day = parseInt(dicDefault);
if (day && type === "range") {
if (format === "date") {
return [moment().subtract(day, "days").format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")];
} else if (format === "dateTime") {
return [moment().subtract(day, "days").format("YYYY-MM-DD HH:mm:ss"), moment().format("YYYY-MM-DD HH:mm:ss")];
}
}
} catch (e) {
console.log(e);
} // 后期扩展类型转换
return dicDefault;
}
/**
*
* @param {日期格式} format
* @param {默认值} defaultValue
* @returns
*/
export 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] = moment().format("YYYY-MM-DD");
if (defaultValue[1] === "today") defaultValue[1] = moment().format("YYYY-MM-DD");
} else if (format === "dateTime") {
if (defaultValue[0] === "today") defaultValue[0] = moment().format("YYYY-MM-DD 00:00:00");
if (defaultValue[1] === "today") defaultValue[1] = moment().format("YYYY-MM-DD 23:59:59");
}
}
} catch (e) {
console.log(e);
}
return defaultValue;
}