SOURCE

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 命令行工具 X clear

                    
>
console