Skip to content

Commit e860413

Browse files
author
piexlmax
committed
修复路由无法携带参数的bug
1 parent 163b76b commit e860413

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,4 @@
5050
"vite-plugin-banner": "^0.1.3",
5151
"vite-plugin-importer": "^0.2.5"
5252
}
53-
}
53+
}

web/src/store/module/router.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ import { asyncMenu } from '@/api/menu'
55
const routerList = []
66
const keepAliveRouters = []
77

8-
const formatRouter = (routes) => {
8+
const formatRouter = (routes, routeMap) => {
99
routes && routes.forEach(item => {
1010
if ((!item.children || item.children.every(ch => ch.hidden)) && item.name !== '404' && !item.hidden) {
1111
routerList.push({ label: item.meta.title, value: item.name })
1212
}
1313
item.meta.hidden = item.hidden
14+
routeMap[item.name] = item
1415
if (item.children && item.children.length > 0) {
15-
formatRouter(item.children)
16+
formatRouter(item.children, routeMap)
1617
}
1718
})
1819
}
@@ -33,6 +34,7 @@ export const router = {
3334
namespaced: true,
3435
state: {
3536
asyncRouters: [],
37+
routeMap: {},
3638
routerList: routerList,
3739
keepAliveRouters: keepAliveRouters
3840
},
@@ -47,6 +49,9 @@ export const router = {
4749
// 设置需要缓存的路由
4850
setKeepAliveRouters(state, keepAliveRouters) {
4951
state.keepAliveRouters = keepAliveRouters
52+
},
53+
serRouteMap(state, routeMap) {
54+
state.routeMap = routeMap
5055
}
5156
},
5257
actions: {
@@ -62,6 +67,7 @@ export const router = {
6267
children: []
6368
}]
6469
const asyncRouterRes = await asyncMenu()
70+
const routeMap = {}
6571
const asyncRouter = asyncRouterRes.data.menus
6672
asyncRouter.push({
6773
path: '404',
@@ -72,7 +78,7 @@ export const router = {
7278
},
7379
component: 'view/error/index.vue'
7480
})
75-
formatRouter(asyncRouter)
81+
formatRouter(asyncRouter, routeMap)
7682
baseRouter[0].children = asyncRouter
7783
baseRouter.push({
7884
path: '/:catchAll(.*)',
@@ -82,6 +88,7 @@ export const router = {
8288
asyncRouterHandle(baseRouter)
8389
KeepAliveFilter(asyncRouter)
8490
commit('setAsyncRouter', baseRouter)
91+
commit('serRouteMap', routeMap)
8592
commit('setRouterList', routerList)
8693
commit('setKeepAliveRouters', keepAliveRouters)
8794
return true
@@ -97,6 +104,9 @@ export const router = {
97104
},
98105
keepAliveRouters(state) {
99106
return state.keepAliveRouters
107+
},
108+
routeMap(state) {
109+
return state.routeMap
100110
}
101111
}
102112
}

web/src/view/layout/aside/index.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export default {
3939
}
4040
},
4141
computed: {
42-
...mapGetters('router', ['asyncRouters']),
42+
...mapGetters('router', ['asyncRouters', 'routeMap']),
4343
...mapGetters('user', ['baseColor', 'activeColor', 'sideMode'])
4444
},
4545
watch: {
@@ -63,11 +63,11 @@ export default {
6363
},
6464
methods: {
6565
...mapMutations('history', ['addHistory']),
66-
selectMenuItem(index, _, ele) {
66+
selectMenuItem(index) {
6767
const query = {}
6868
const params = {}
69-
ele?.route?.parameters &&
70-
ele.route.parameters.forEach(item => {
69+
this.routeMap[index]?.parameters &&
70+
this.routeMap[index].parameters.forEach(item => {
7171
if (item.type === 'query') {
7272
query[item.key] = item.value
7373
} else {

0 commit comments

Comments
 (0)