当后端给你的json数据不是树格式的,不能直接拿数据放在el-tree组件里使用,所以要把id和pid格式的数组转化为树格式的数据
不多说,只讲干货,直接上代码
function toTree(data) {
let result = []
if (!Array.isArray(data)) {
return result
}
data.forEach(item => {
delete item.children;
});
let map = {};
data.forEach(item => {
map[item.id] = item;
});
data.forEach(item => {
let parent = map[item.pid];
if (parent) {
(parent.children || (parent.children = [])).push(item);
} else {
result.push(item);
}
});
return result;
}