fx-form-widget
Version:
76 lines (71 loc) • 2.37 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.traverseKeys = exports.transformArryToMap = exports.generateMapfromArray = exports.flattenTreeData = exports.filterTreeKeys = exports.addKeyByArrayMap = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
// 将树扁平化
var flattenTreeData = exports.flattenTreeData = function flattenTreeData(data, arr) {
var cloneData = JSON.parse(JSON.stringify(data));
if (!Array.isArray(data)) return [];
return cloneData.reduce(function (prev, next) {
prev.push(next);
var children = next.children;
if (Array.isArray(children)) {
flattenTreeData(children, arr);
}
return arr;
}, arr);
};
// 将数组变成map
var transformArryToMap = exports.transformArryToMap = function transformArryToMap(arrs) {
var treeDataMap = new Map();
arrs.forEach(function (data) {
var id = data.id;
if (!id) return;
if (treeDataMap.has(id)) {
var datas = treeDataMap.get(id);
if (!datas) return;
datas.push(data);
treeDataMap.set(id, datas);
} else {
treeDataMap.set(id, [data]);
}
});
return treeDataMap;
};
var filterTreeKeys = exports.filterTreeKeys = function filterTreeKeys(key, map) {
if (typeof key !== 'string') return [];
var arr = key.split('_');
return map.get(arr.length === 2 ? arr[1] : arr[0]);
};
// 将所有符合条件的数据放入数组中
var traverseKeys = exports.traverseKeys = function traverseKeys(keys, map) {
var arr = [];
keys.forEach(function (key) {
arr = arr.concat(filterTreeKeys(key, map));
});
// 数据进行去重
return Array.from(new Set(arr)).map(function (item) {
return item.key;
});
};
// 将数组转化为map
var generateMapfromArray = exports.generateMapfromArray = function generateMapfromArray(array) {
var map = new Map();
array.filter(function (item) {
return item.isLeaf;
}).forEach(function (item) {
var id = item.id;
map.set(id, item);
});
return map;
};
var addKeyByArrayMap = exports.addKeyByArrayMap = function addKeyByArrayMap(list, isEmployee) {
return list.map(function (item) {
return (0, _extends2["default"])({}, item, {
key: item.id,
title: item.name,
isEmployee: isEmployee
});
});
};