完善动态菜单、设置角色等功能,修复登录问题

This commit is contained in:
橙子
2022-05-08 14:46:22 +08:00
parent e3a06b28dd
commit d252229777
22 changed files with 150 additions and 263 deletions

View File

@@ -1,29 +1,26 @@
export function setTreeMenu(menuList) {
if (menuList != null && menuList.length > 0) {
export function toTree(data) {
// 删除 所有 children,以防止多次调用
data.forEach(function (item) {
delete item.children;
});
//结果
var res;
//获取最小的parentId
var minParentId = 0;
//获取id=最小的parentId的菜单列表
var menuList1=menuList.filter((item)=>{item.parentId==minParentId}) ;
menuList1.forEach(element=>{
res.push(element)
var children=menuList.filter((item)=>{item.parentId==element.id}) ;
if (children.length > 0) {
setTreeChildren(menuList, children,element)
}
})
}
}
function setTreeChildren(menuList, childrenList,model) {
childrenList.forEach(element => {
model.Childs.push(element);
var childrenList2=menuList.filter((item)=>{item.parentId==element.id}) ;
if (childrenList2.length > 0) {
setTreeChildren(menuList, childrenList2,element)
// 将数据存储为 以 id 为 KEY 的 map 索引数据列
var map = {};
data.forEach(function (item) {
map[item.id] = item;
});
// console.log(map);
var val = [];
data.forEach(function (item) {
// 以当前遍历项的pid,去map对象中找到索引的id
var parent = map[item.parentId];
// 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中
if (parent) {
(parent.children || ( parent.children = [] )).push(item);
} else {
//如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中作为顶级
val.push(item);
}
});
return val;
}