fx-form-widget
Version:
71 lines (67 loc) • 1.91 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
// 将树扁平化
export var 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
export var 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;
};
export var filterTreeKeys = function filterTreeKeys(key, map) {
if (typeof key !== 'string') return [];
var arr = key.split('_');
return map.get(arr.length === 2 ? arr[1] : arr[0]);
};
// 将所有符合条件的数据放入数组中
export var 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
export var 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;
};
export var addKeyByArrayMap = function addKeyByArrayMap(list, isEmployee) {
return list.map(function (item) {
return _extends({}, item, {
key: item.id,
title: item.name,
isEmployee: isEmployee
});
});
};