|
|
|
@ -240,5 +240,34 @@ export default {
|
|
|
|
newArr.push(item);
|
|
|
|
newArr.push(item);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
return newArr;
|
|
|
|
return newArr;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
translateDataToTree(data, key) {
|
|
|
|
|
|
|
|
let parents = data.filter(value => value.parentId === 0);
|
|
|
|
|
|
|
|
let children = data.filter(value => value.parentId !== 0);
|
|
|
|
|
|
|
|
let translator = (parents, children) => {
|
|
|
|
|
|
|
|
parents &&
|
|
|
|
|
|
|
|
parents.forEach(parent => {
|
|
|
|
|
|
|
|
children &&
|
|
|
|
|
|
|
|
children.forEach((current, index) => {
|
|
|
|
|
|
|
|
if (current.parentId === parent.id) {
|
|
|
|
|
|
|
|
// 深拷贝
|
|
|
|
|
|
|
|
let temp = JSON.parse(
|
|
|
|
|
|
|
|
JSON.stringify(children)
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
// 减少递归时节点数
|
|
|
|
|
|
|
|
temp.splice(index, 1);
|
|
|
|
|
|
|
|
// 加入父节点的children
|
|
|
|
|
|
|
|
parent.children && parent.children.length
|
|
|
|
|
|
|
|
? parent.children.push(current)
|
|
|
|
|
|
|
|
: (parent.children = [current]);
|
|
|
|
|
|
|
|
// 将匹配的子节点作为下一次的父节点开始滚雪球
|
|
|
|
|
|
|
|
translator([current], temp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
translator(parents, children);
|
|
|
|
|
|
|
|
parents = parents.filter(item => item.rights === key);
|
|
|
|
|
|
|
|
return parents && parents.length && parents[0].children;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|