结合ng-zorro中的树形控件组件
数据结构类似于:[{
title: 测试1,
key: 1,
parentID:000,
isLeaf: true,//设置为叶子节点
}]
translateDataToTree(data) { //递归遍历数据,组织树形结构数据
let parents = data.filter(value => value.parentID == '000')
let children = data.filter(value => value.parentID != '000' && value.parentID != null)
let translator = (parents, children) => {
parents.forEach((parent) => {
children.forEach((current, index) => {
if (current.parentID === parent.key) {
let temp = JSON.parse(JSON.stringify(children))
temp.splice(index, 1)
translator([current], temp)
if(typeof parent.children !== 'undefined'){
typeof current.children !== 'undefined' ?current.isLeaf=false:current.isLeaf=true
parent.children.push(current)
}else{
typeof current.children !== 'undefined' ?current.isLeaf=false:current.isLeaf=true
parent.children = [current]
typeof parent.children !== 'undefined' ?parent.isLeaf=false:parent.isLeaf=true
}
}
}
)
}
)
}
translator(parents, children)
return parents
}