handleTree(data, "id", 'parentId', 'children', 'root');
//data 数据源 id子节点id字段 parentId 父节点id字段 rootId 根节点id
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || 0
//对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
//循环所有项
let treeData = cloneData.filter(father => {
let branchArr = cloneData.filter(child => {
//返回每一项的子级数组
return father[id] === child[parentId]
});
branchArr.length > 0 ? father.children = branchArr : '';
//返回第一层
return father[parentId] === rootId;
});
return treeData != '' ? treeData : data;
}
//根节点不确定,生成树结构的数据
export function handleTreeNoRoot(data, id, parentId, children, rootId) {
var notRoot = []
id &