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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
* @copyright chuzhixin 1204505056@qq.com
* @description 路由拦截状态管理,目前两种模式:all模式与intelligence模式,其中partialRoutes是菜单暂未使用
*/
import { asyncRoutes, constantRoutes } from "@/router"
import {
filterAllRoutes,
filterAsyncRoutes,
routesFormat,
} from "@/utils/handleRoutes"
const state = {
routes: [],
partialRoutes: [],
}
const getters = {
routes: (state) => state.routes,
partialRoutes: (state) => state.partialRoutes,
}
const mutations = {
setRoutes(state, routes) {
state.routes = constantRoutes.concat(routes)
},
setAllRoutes(state, routes) {
state.routes = constantRoutes.concat(routes)
},
setPartialRoutes(state, routes) {
state.partialRoutes = constantRoutes.concat(routes)
},
}
const actions = {
async setRoutes({ commit }, permissions) {
let accessedRoutes = []
accessedRoutes = asyncRoutes
commit("setRoutes", accessedRoutes)
return accessedRoutes
},
async setAllRoutes({ commit }, menuList) {
let accessRoutes = routesFormat(menuList)
let replenishRoutes = [
{
path: "*",
redirect: "/404",
hidden: true,
},
]
if (accessRoutes && accessRoutes[0]) {
replenishRoutes.unshift({
hidden: true,
path: "/",
redirect: {
name: accessRoutes[0].children[0].name,
},
})
}
accessRoutes = accessRoutes.concat(replenishRoutes)
commit("setAllRoutes", accessRoutes)
return accessRoutes
},
setPartialRoutes({ commit }, accessRoutes) {
commit("setPartialRoutes", accessRoutes)
return accessRoutes
},
}
export default {
state,
getters,
mutations,
actions,
}