[{
"menuId": 108,
"menuName": "系统管理",
"parentMenuId": 0,
"menuCode": "/",
"menuUrl": "#",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 1,
"isPower": true
}, {
"menuId": 99,
"menuName": "园林管理",
"parentMenuId": 0,
"menuCode": "/",
"menuUrl": "#",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 0,
"isPower": true
}, {
"menuId": 100,
"menuName": "园林首页",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 1,
"isPower": true
}, {
"menuId": 101,
"menuName": "视频监控",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/video",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 2,
"isPower": true
}, {
"menuId": 102,
"menuName": "调试",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/debug",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 3,
"isPower": true
}, {
"menuId": 103,
"menuName": "区域",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/area",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 4,
"isPower": true
}, {
"menuId": 104,
"menuName": "硬件",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/hardware",
"iconUrl": null,
"path": null,
"depth": 3,
"sortNum": 5,
"isPower": true
}, {
"menuId": 105,
"menuName": "大屏参数设置",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/fullscreensetting",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 6,
"isPower": true
}, {
"menuId": 106,
"menuName": "设备安装",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/install",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 7,
"isPower": true
}, {
"menuId": 110,
"menuName": "预警消息",
"parentMenuId": 99,
"menuCode": "/",
"menuUrl": "/admin/garden/alert/detail/",
"iconUrl": null,
"path": null,
"depth": 1,
"sortNum": 7,
"isPower": true
}, {
"menuId": 109,
"menuName": "园林管理",
"parentMenuId": 108,
"menuCode": "/",
"menuUrl": "/admin/system/gardens/",
"iconUrl": null,
"path": null,
"depth": 3,
"sortNum": 1,
"isPower": true
}, {
"menuId": 111,
"menuName": "帐号管理",
"parentMenuId": 108,
"menuCode": "/",
"menuUrl": "/admin/system/account",
"iconUrl": null,
"path": null,
"depth": 3,
"sortNum": 2,
"isPower": true
}, {
"menuId": 112,
"menuName": "企业管理",
"parentMenuId": 108,
"menuCode": "/",
"menuUrl": "/admin/system/enterprise",
"iconUrl": null,
"path": null,
"depth": 3,
"sortNum": 3,
"isPower": true
}]
转换函数:
/**
* @description: 生成树形菜单所需数据,无限级
* @param parentMenuId:父ID
* @author 邹中兴
* @创建日期 2020/07/01
* @return: 无
*/
generateTreeData(menus, parentMenuId) {
// console.log(menus)
let itemArr = [];
for (let i = 0; i < menus.length; i++) {
let menu = menus[i];
let node = null;
if (menu.parentMenuId == parentMenuId) {
node = {
menuId: menu.menuId,
label: menu.menuName,
menuUrl: menu.menuUrl,
parentMenuId: menu.parentMenuId,
sortNum: menu.sortNum
}
node.children = this.generateTreeData(menus, menu.menuId);
itemArr.push(node);
}
}
itemArr = itemArr.sort((a, b) => {
return a.sortNum - b.sortNum;
})
return itemArr;
},
生成结果
[{
"menuId": 99,
"label": "园林管理",
"menuUrl": "#",
"parentMenuId": 0,
"sortNum": 0,
"children": [{
"menuId": 100,
"label": "园林首页",
"menuUrl": "/",
"parentMenuId": 99,
"sortNum": 1,
"children": []
}, {
"menuId": 101,
"label": "视频监控",
"menuUrl": "/admin/garden/video",
"parentMenuId": 99,
"sortNum": 2,
"children": []
}, {
"menuId": 102,
"label": "调试",
"menuUrl": "/admin/garden/debug",
"parentMenuId": 99,
"sortNum": 3,
"children": []
}, {
"menuId": 103,
"label": "区域",
"menuUrl": "/admin/garden/area",
"parentMenuId": 99,
"sortNum": 4,
"children": []
}, {
"menuId": 104,
"label": "硬件",
"menuUrl": "/admin/garden/hardware",
"parentMenuId": 99,
"sortNum": 5,
"children": []
}, {
"menuId": 105,
"label": "大屏参数设置",
"menuUrl": "/admin/garden/fullscreensetting",
"parentMenuId": 99,
"sortNum": 6,
"children": []
}, {
"menuId": 106,
"label": "设备安装",
"menuUrl": "/admin/garden/install",
"parentMenuId": 99,
"sortNum": 7,
"children": []
}, {
"menuId": 110,
"label": "预警消息",
"menuUrl": "/admin/garden/alert/detail/",
"parentMenuId": 99,
"sortNum": 7,
"children": []
}]
}, {
"menuId": 108,
"label": "系统管理",
"menuUrl": "#",
"parentMenuId": 0,
"sortNum": 1,
"children": [{
"menuId": 109,
"label": "园林管理",
"menuUrl": "/admin/system/gardens/",
"parentMenuId": 108,
"sortNum": 1,
"children": []
}, {
"menuId": 111,
"label": "帐号管理",
"menuUrl": "/admin/system/account",
"parentMenuId": 108,
"sortNum": 2,
"children": []
}, {
"menuId": 112,
"label": "企业管理",
"menuUrl": "/admin/system/enterprise",
"parentMenuId": 108,
"sortNum": 3,
"children": []
}]
}]
javascripot扁平数组转树形数组,并按指定字段排序。
原文:https://www.cnblogs.com/zouzhongxing/p/14051574.html