<template>
<div>
</div>
</template>
<script setup>
const data = [
{ id: '01', lable: '项目经理', pid: '' },
{ id: '02', lable: '产品leader', pid: '01' },
{ id: '03', lable: 'UIleader', pid: '01' },
{ id: '04', lable: '技术leader', pid: '01' },
{ id: '05', lable: '测试leader', pid: '01' },
{ id: '06', lable: '运维leader', pid: '01' },
{ id: '07', lable: '产品经理', pid: '02' },
{ id: '08', lable: '产品经理', pid: '02' },
{ id: '09', lable: 'UI设计师', pid: '03' },
{ id: '10', lable: '前端工程师', pid: '04' },
{ id: '11', lable: '后端工程师', pid: '04' },
{ id: '12', lable: '后端工程师', pid: '04' },
{ id: '13', lable: '测试工程师', pid: '05' },
{ id: '14', lable: '测试工程师', pid: '05' },
{ id: '15', lable: '运维工程师', pid: '06' }
]
function toTree(data) {
const tree = [],obj = {}
data.forEach(element => {
// 浅拷贝
obj[element.id] = element
obj[element.id].children = []
})
data.forEach(element => {
if(element.pid){
obj[element.pid].children.push(element)
}else{
tree.push(element)
}
})
return tree
}
console.log(toTree(data))
</script>
<style lang="scss" scoped>
</style>