Vue.prototype.completeSubmenus=(menu, menuList) {
const submenus = [];
// 1.筛选出符合条件的子数据
for (const item of menuList) {
if (item.parentId === menu.deptId) {
submenus.push(item);
}
}
// 2.如果子数据存在,则封装属性
if (submenus.length > 0) {
// 递归封装子数据中的子子数据
for (const submenu of submenus) {
this.completeSubmenus(submenu, menuList);
}
menu.children = submenus;
}else{
menu.children = '';
}
// 3.返回封装后的menu对象
return menu;
},
使用
const topMenu = e;
//e为第一级菜单
this.option=[this.completeSubmenus(topMenu, res.data)]