menu.js
1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { HomeOutlined } from '@ant-design/icons';
const mapsIcons = {
HomeOutlined: <HomeOutlined />,
};
export function getDataMenus(menus) {
//过滤非菜单类型START
function getMenu(menus) {
menus = menus.filter(_ => {
if (_.subList.length > 0) {
_.children = getMenu(_.subList);
_.name = _.name;
_.path = _.children.length ? _.children[0].url : _.url;
_.locale = `menu${_.url.replace(/\//g, '.')}`;
_.icon = mapsIcons[_.icon];
}
return _.type === 'MENU';
});
return menus;
}
menus = getMenu(menus);
//END
return menus;
}
/**
* 获得处理后的菜单
*/
export const getPermissionList = (data = []) => {
let dataMenu = []; // 菜单集合
let dataExpandedKeys = []; // 需要展开数的集合
function filterPermission(data) {
data.map(item => {
item.key = item.resourceCode;
dataExpandedKeys.push(item.resourceCode);
dataMenu.push(item);
if (item.children && item.children.length) {
filterPermission(item.children);
}
});
}
filterPermission(data);
return { dataMenu, dataExpandedKeys };
};