const list1 = [
{
"name": "立案", //名称
"code": "LA", //代码
"childrenList": [
{
"name": "案件受理", //名称
"code": "AJSL", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"id": "S20124sasas2000", //id
"sourceType": "YYWS", //文书类型(YYWS 已有文书,ZJCL 证据材料)
"reviewStatus": "NEED_REVIEW", //审核状态
"isDeleted": false, //是否被删除
"deleteReason": "RELATION_CHANGE", //删除原因
"nodeType": "LEAF" //节点类型
}
] //孩子
},
{
"name": "受案回执", //名称
"code": "SAHZ", //代码
"childrenList": [] //孩子
}
] //孩子
}
] //孩子
},
{
"name": "立案", //名称
"code": "LA", //代码
"childrenList": [
{
"name": "案件受理", //名称
"code": "AJSL", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"id": "S20124sasas2000", //id
"sourceType": "YYWS", //文书类型(YYWS 已有文书,ZJCL 证据材料)
"reviewStatus": "NEED_REVIEW", //审核状态
"isDeleted": false, //是否被删除
"deleteReason": "RELATION_CHANGE", //删除原因
"nodeType": "LEAF" //节点类型
}
] //孩子
},
{
"name": "受案回执", //名称
"code": "SAHZ", //代码
"childrenList": [] //孩子
}
] //孩子
},
{
"name": "案件受理", //名称
"code": "AJSL", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"id": "S20124sasas2000", //id
"sourceType": "YYWS", //文书类型(YYWS 已有文书,ZJCL 证据材料)
"reviewStatus": "NEED_REVIEW", //审核状态
"isDeleted": false, //是否被删除
"deleteReason": "RELATION_CHANGE", //删除原因
"nodeType": "LEAF" //节点类型
}
] //孩子
},
{
"name": "受案回执", //名称
"code": "SAHZ", //代码
"childrenList": [
{
"name": "受案登记表", //名称
"code": "SADJB", //代码
"id": "S20124sasas2000", //id
"sourceType": "YYWS", //文书类型(YYWS 已有文书,ZJCL 证据材料)
"reviewStatus": "NEED_REVIEW", //审核状态
"isDeleted": false, //是否被删除
"deleteReason": "RELATION_CHANGE", //删除原因
"nodeType": "LEAF" //节点类型
}
] //孩子子
}
] //孩子
}
] //孩子
}
]
let find = (arr) => {
let maxAll = 0
let list = JSON.parse(JSON.stringify(arr))
let walker = (obj,currentAll,currentList) => {
currentAll += 1
obj.current = currentAll
obj.title = obj.name
obj.key = obj.id || obj.code
obj.children = obj.childrenList
delete obj.name
delete obj.childrenList
currentList.push(obj)
if (!obj.children || obj.children.length === 0) {
maxAll = maxAll < currentAll ? currentAll : maxAll
currentList.map(item => {
item.all = maxAll
})
currentAll = 0
currentList = []
} else {
obj.children.map((item, index) => {
walker(item,currentAll,currentList)
})
}
}
list.map(item => {
walker(item,0,[]);
})
return list
}
console.log(find(list1))
console