//data转tree结构
translateDataToTree(data) {
const parent = data.filter(
(value) => value.parentUuid === 'undefined' || value.parentUuid === '0'
)
const children = data.filter(
(value) => value.parentUuid !== 'undefined' && value.parentUuid !== '0'
)
const translator = (parent, children) => {
parent.forEach((parent) => {
children.forEach((current, index) => {
if (current.parentUuid === parent.uuid) {
const temp = JSON.parse(JSON.stringify(children))
temp.splice(index, 1)
translator([current], temp)
typeof parent.children !== 'undefined' ?
parent.children.push(current) :
(parent.children = [current])
}
})
})
}
translator(parent, children)
return parent
},
// tree转data
translateTreeToData(data) {
const result = []
data.forEach((item) => {
const loop = (data) => {
result.push(data)
const child = data.children
if (child) {
for (let i = 0; i < child.length; i++) {
loop(child[i])
}
}
}
loop(item)
})
return result
},
tree转data 的时候不会删除children 由树形结构转成data再转成Tree的话 需要再转成data的时候循环把children删掉。