@@ -5,14 +5,15 @@ import { asyncMenu } from '@/api/menu'
5
5
const routerList = [ ]
6
6
const keepAliveRouters = [ ]
7
7
8
- const formatRouter = ( routes ) => {
8
+ const formatRouter = ( routes , routeMap ) => {
9
9
routes && routes . forEach ( item => {
10
10
if ( ( ! item . children || item . children . every ( ch => ch . hidden ) ) && item . name !== '404' && ! item . hidden ) {
11
11
routerList . push ( { label : item . meta . title , value : item . name } )
12
12
}
13
13
item . meta . hidden = item . hidden
14
+ routeMap [ item . name ] = item
14
15
if ( item . children && item . children . length > 0 ) {
15
- formatRouter ( item . children )
16
+ formatRouter ( item . children , routeMap )
16
17
}
17
18
} )
18
19
}
@@ -33,6 +34,7 @@ export const router = {
33
34
namespaced : true ,
34
35
state : {
35
36
asyncRouters : [ ] ,
37
+ routeMap : { } ,
36
38
routerList : routerList ,
37
39
keepAliveRouters : keepAliveRouters
38
40
} ,
@@ -47,6 +49,9 @@ export const router = {
47
49
// 设置需要缓存的路由
48
50
setKeepAliveRouters ( state , keepAliveRouters ) {
49
51
state . keepAliveRouters = keepAliveRouters
52
+ } ,
53
+ serRouteMap ( state , routeMap ) {
54
+ state . routeMap = routeMap
50
55
}
51
56
} ,
52
57
actions : {
@@ -62,6 +67,7 @@ export const router = {
62
67
children : [ ]
63
68
} ]
64
69
const asyncRouterRes = await asyncMenu ( )
70
+ const routeMap = { }
65
71
const asyncRouter = asyncRouterRes . data . menus
66
72
asyncRouter . push ( {
67
73
path : '404' ,
@@ -72,7 +78,7 @@ export const router = {
72
78
} ,
73
79
component : 'view/error/index.vue'
74
80
} )
75
- formatRouter ( asyncRouter )
81
+ formatRouter ( asyncRouter , routeMap )
76
82
baseRouter [ 0 ] . children = asyncRouter
77
83
baseRouter . push ( {
78
84
path : '/:catchAll(.*)' ,
@@ -82,6 +88,7 @@ export const router = {
82
88
asyncRouterHandle ( baseRouter )
83
89
KeepAliveFilter ( asyncRouter )
84
90
commit ( 'setAsyncRouter' , baseRouter )
91
+ commit ( 'serRouteMap' , routeMap )
85
92
commit ( 'setRouterList' , routerList )
86
93
commit ( 'setKeepAliveRouters' , keepAliveRouters )
87
94
return true
@@ -97,6 +104,9 @@ export const router = {
97
104
} ,
98
105
keepAliveRouters ( state ) {
99
106
return state . keepAliveRouters
107
+ } ,
108
+ routeMap ( state ) {
109
+ return state . routeMap
100
110
}
101
111
}
102
112
}
0 commit comments