数据如下:
const tableData = [
{
"menuId": 1,
"menuName": "系统管理",
"pid": 0,
"pids": "[0]",
"url": "#",
"perms": "#",
"icon": "el-icon-setting",
"type": 1,
"sort": 1,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": [
{
"menuId": 2,
"menuName": "用户管理",
"pid": 1,
"pids": "[1]",
"url": "/system/sys_user",
"perms": "system:sys_user",
"icon": "el-icon-setting",
"type": 2,
"sort": 1,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 3,
"menuName": "角色管理",
"pid": 1,
"pids": "[1]",
"url": "/system/sys_role",
"perms": "system:sys_role",
"icon": "el-icon-setting",
"type": 2,
"sort": 2,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 4,
"menuName": "菜单管理",
"pid": 1,
"pids": "[1]",
"url": "/system/sys_menu",
"perms": "system:sys_menu",
"icon": "el-icon-setting",
"type": 2,
"sort": 3,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 5,
"menuName": "部门管理",
"pid": 1,
"pids": "[1]",
"url": "/system/dept",
"perms": "system:dept",
"icon": "el-icon-setting",
"type": 2,
"sort": 4,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 6,
"menuName": "日志记录",
"pid": 1,
"pids": "[1]",
"url": "/system/log",
"perms": "system:log",
"icon": "el-icon-setting",
"type": 2,
"sort": 5,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
}
]
},
{
"menuId": 7,
"menuName": "教学管理",
"pid": 0,
"pids": "[0]",
"url": "#",
"perms": "#",
"icon": "el-icon-setting",
"type": 1,
"sort": 2,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": [
{
"menuId": 8,
"menuName": "教学方向",
"pid": 7,
"pids": "[7]",
"url": "/teaching/direction",
"perms": "teaching:direction",
"icon": "el-icon-setting",
"type": 2,
"sort": 1,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 9,
"menuName": "方向课程",
"pid": 7,
"pids": "[7]",
"url": "/teaching/course",
"perms": "teaching:course",
"icon": "el-icon-setting",
"type": 2,
"sort": 2,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
},
{
"menuId": 10,
"menuName": "项目经理课时",
"pid": 7,
"pids": "[7]",
"url": "/teaching/class_hour",
"perms": "teaching:class_hour",
"icon": "el-icon-setting",
"type": 2,
"sort": 3,
"createDate": "2023-05-18 08:05:50",
"updateDate": "2023-05-18 08:05:50",
"status": 1,
"deleteFlag": 1,
"children": []
}
]
},
{
"menuId": 11,
"menuName": "通知审批",
"pid": 0,
"pids": "[0]",
"url": "/flow",
"perms": "flow:add",
"icon": "el-icon-setting",
"type": 1,
"sort": 1,
"createDate": "2023-06-27 00:24:21",
"updateDate": "2023-06-27 00:24:26",
"status": 1,
"deleteFlag": 1,
"children": []
}
];
添加属性的函数如下:
const addAttr = (treeData) => {
return treeData.map((item) => ({
...item,
label: item.menuName,
value: item.menuId,
hasChildren: item.children?.length>0 ? true : false,
children: item.children?addAttr(item.children) : []
}))
}
调用函数传入数据,获取到处理好的数据
let data=addAttr(tableData)
console.log(data)