index.js
865 Bytes
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 user from './user';
import app from './app';
import { cloneDeep } from 'lodash';
const getRoutes = (routes, maps = {}) => {
routes = routes.map(item => {
if (item.auths) {
maps[item.path] = item.auths;
}
if (item.routes) {
item.routes = getRoutes(item.routes, maps).routes;
}
return item;
});
routes.push({
component: '../pages/404',
});
return {
routes,
maps,
};
};
const { routes, maps } = getRoutes([user]);
export const routeMaps = maps;
export const codeMappingForResource = (() => {
let menu = cloneDeep([app]);
let codeMapping = new Map();
const getItem = arr => {
arr.forEach(item => {
codeMapping.set(item?.resourceCode, item);
if (item.routes) {
getItem(item.routes);
}
});
};
getItem(menu);
return codeMapping;
})();
export default routes;