const arr = [
{
id: 1,
url: "system",
sort: 2,
icon: "icon-yun",
keepAlive: 0,
parentId: null,
componentName:'System',
name: "系统管理"
},
{
id: 2,
url: "system/account",
sort: 3,
icon: "icon-ziduanguanli",
componentName:'Account',
keepAlive: 0,
parentId: 1,
name: "账号管理"
},
{
id: 4,
url: "system/access",
sort: 6,
icon: "icon-shuazi-1",
componentName:'Access',
keepAlive: 1,
parentId: 1,
name: "资源管理"
}
]
function listTree(items, parentId = null){
return items.filter(item=>item.parentId == parentId).map(item=>{
if (listTree(items, item.id).length) {
return {
path:`/${item.url}`,
name:item.componentName,
meta:{
orderNo:item.sort,
title:item.name,
icon:item.icon,
ignoreKeepAlive:Boolean(item.keepAlive)
},
component: 'LAYOUT',
redirect:`/${listTree(items, item.id)[0].path}`,
children: listTree(items, item.id)
}
} else {
return {
path:item.url,
name:item.componentName,
meta:{
title:item.name,
icon:item.icon,
orderNo:item.sort,
ignoreKeepAlive:Boolean(item.keepAlive)
},
component:`/${item.url}/index`,
}
}
})
}
console.log(listTree(arr))
console