UNPKG

@bos-alpha/data

Version:

数据管理

147 lines (146 loc) 7.1 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; // 接口mappings解析 export var mappingsParse = function (mappings, docClassList, edgeClassList) { console.log('mappings=====', mappings); return mappings.map(function (item) { var label = item.bosclass; var curMappings = {}; // 对象类 if (item.relation === false) { var allAttributes_1 = {}; (item.allAttributes || []).forEach(function (attr) { allAttributes_1[attr.rawKey] = attr.value; }); curMappings = __assign({ bosclass: item.bosclass, dataset: item.dataset }, allAttributes_1); label = docClassList.find(function (ditem) { return ditem.className === item.bosclass; }).label; } // 关系类 else { // 左对象关键字 var leftAttributes_1 = {}; (item.leftIdAttributes || []).forEach(function (attr) { leftAttributes_1[attr.rawKey] = attr.value; }); // 右对象关键字 var rightAttributes_1 = {}; (item.rightIdAttributes || []).forEach(function (attr) { rightAttributes_1[attr.rawKey] = attr.value; }); curMappings = __assign(__assign({ bosclass: item.bosclass, dataset: item.dataset, LeftObjectClass: item.leftObjectClass, RightObjectClass: item.rightObjectClass }, leftAttributes_1), rightAttributes_1); label = edgeClassList.find(function (eitem) { return eitem.className === item.bosclass; }).label; } return { code: item.bosclass, label: label, mappings: curMappings }; }); }; // 映射列表解析转为表格数据 export var parseMappings2TableData = function (mapList, className, classAtts, classDefinition) { // 当前映射 var curMap = mapList.find(function (item) { return item.code === className; }); var _a = curMap.mappings, bosclass = _a.bosclass, dataset = _a.dataset, restMap = __rest(_a, ["bosclass", "dataset"]); // 当前类已有映射关系 var curClassMappings = {}; Object.keys(restMap || {}).forEach(function (key) { // 父节点关键字 if (key.includes('ParentAttribute.')) { // 去掉父节点关键字前缀 用于回填 var code = key.replace('ParentAttribute.', ''); curClassMappings[code] = __assign(__assign({}, (curClassMappings[code] || {})), { isParent: true, parent: restMap[key] }); } // 关键字映射(主关键字或左对象和右对象)或普通映射 else { // 对象类映射 统统去掉主关键字前缀 用于回填 var code = key; if (/^IdAttribute/.test(key)) { code = key.replace('IdAttribute.', ''); } curClassMappings[code] = __assign(__assign({}, (curClassMappings[code] || {})), { value: restMap[key], checked: /^IdAttribute/.test(key), isParent: false, parent: null }); } }); // 属性列表 var attributes = classAtts .filter(function (item) { return item.code !== 'bosclass'; }) .map(function (item) { var curField = curClassMappings[item.code]; return __assign(__assign({}, item), { field: curField ? curField.value : null, checked: curField ? curField.checked : false, isParent: curField ? curField.isParent : false, parent: curField ? curField.parent : null }); }); // 对象类直接列出所有属性 关系类列出已勾选关键字的左右对象属性 if (classDefinition.type === 'doc') { return attributes; } else { /** 关系类 field "LeftIdAttribute.code":"folderCode" // 关系类左对象的主键字段 "RightIdAttribute.code":"documentCode" // 关系类右对象的主键字段 */ var leftObjectClass_1 = classDefinition.leftObjectClass, rightObjectClass_1 = classDefinition.rightObjectClass; var leftFind = mapList.find(function (item) { return item.code === leftObjectClass_1; }); var rightFind = mapList.find(function (item) { return item.code === rightObjectClass_1; }); // 左对象关键字 右对象关键字 var leftAttrs = []; var rightAttrs = []; // 左对象和右对象需完全匹配 if (leftFind && rightFind) { leftAttrs = Object.keys(leftFind.mappings) .filter(function (key) { return /^IdAttribute/.test(key); }) .map(function (key) { var keywordCode = key.replace('IdAttribute.', ''); var curField = curClassMappings["LeftIdAttribute.".concat(keywordCode)]; return { code: "".concat(leftObjectClass_1, ".").concat(keywordCode), edgeCode: "LeftIdAttribute.".concat(keywordCode), leftObject: leftObjectClass_1, field: curField ? curField.value : null, checked: true }; }); rightAttrs = Object.keys(rightFind.mappings) .filter(function (key) { return /^IdAttribute/.test(key); }) .map(function (key) { var keywordCode = key.replace('IdAttribute.', ''); var curField = curClassMappings["RightIdAttribute.".concat(keywordCode)]; return { code: "".concat(rightObjectClass_1, ".").concat(keywordCode), edgeCode: "RightIdAttribute.".concat(keywordCode), rightObject: rightObjectClass_1, field: curField ? curField.value : null, checked: true }; }); } return __spreadArray(__spreadArray(__spreadArray([], leftAttrs, true), rightAttrs, true), attributes, true); } };