function listToTree(data,tree){
let map = {}
if (!Array.isArray(data)) {
return []
}
data.forEach(item => {
if(item.parent){
item.parentId = item.parent.id
}
else{
item.parentId = 0
}
map[item.id] = item
})
data.forEach((item,index) => {
let parent = map[item.parentId]
if (parent) {
(parent.children || (parent.children = [])).push(item)
} else {
tree.push(item)
}
});
}
列表数据样例
[
{
"id": 1,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "兰山区",
"organization": null,
"parent": null,
"remark": null,
"status": true,
"updateMember": ""
},
{
"id": 2,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "兰山街道",
"organization": null,
"parent": null,
"remark": null,
"status": true,
"updateMember": ""
},
{
"id": 3,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "柳青街道",
"organization": null,
"parent": {
"id": 1,
"name": "兰山区"
},
"parentId": 0,
"remark": null,
"status": true,
"updateMember": ""
}
]
生成树形数据
[
{
"id": 1,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "兰山区",
"organization": null,
"parent": null,
"parentId": 0,
"remark": null,
"status": true,
"updateMember": "",
"children": [
{
"id": 2,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "兰山街道",
"organization": null,
"parent": {
"id": 1,
"name": "兰山区"
},
"parentId": 1,
"remark": null,
"status": true,
"updateMember": ""
},
{
"id": 2,
"cratedMember": "",
"created": 1641369903651,
"enabled": true,
"modified": 1641369903651,
"name": "柳青街道",
"organization": null,
"parent": {
"id": 1,
"name": "兰山区"
},
"parentId": 1,
"remark": null,
"status": true,
"updateMember": ""
}
]
}
]