permission.js
1.76 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
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
71
72
73
import { constantRoutes } from '@/router'
import Layout from '@/views/homePage/HomePage.vue'
import baseRouters from '@/router/modules/base'
const permission = {
state: {
routes: [],
addRoutes: [],
defaultRoutes: [],
topbarRouters: [],
sidebarRouters: []
},
mutations: {
SET_ROUTES: (state, routes) => {
state.addRoutes = routes
state.routes = constantRoutes.concat(routes)
},
SET_DEFAULT_ROUTES: (state, routes) => {
state.defaultRoutes = constantRoutes.concat(routes)
},
SET_TOPBAR_ROUTES: (state, routes) => {
state.topbarRouters = routes
},
SET_SIDEBAR_ROUTERS: (state, routes) => {
state.sidebarRouters = routes
},
},
actions: {
generateRoutes({ commit }, route) {
return new Promise(resolve => {
let accessedRoutes
let dtRoutes = {
path: '/',
component: Layout,
redirect: '/homePage',
children: [
...baseRouters,
...route,
{
path: '/404',
component: (resolve) => require(['@/views/error-page/404'], resolve),
hidden: true
},
]
};
accessedRoutes = [
dtRoutes,
{
path: '*',
redirect: '/404',
hidden: true
}
]
console.log(accessedRoutes, baseRouters);
commit('SET_ROUTES', accessedRoutes)
resolve(accessedRoutes)
})
}
}
}
export const loadView = (view) => {
if (process.env.NODE_ENV === 'development') {
return (resolve) => require([`@/views/${view}`], resolve)
} else {
// 使用 import 实现生产环境的路由懒加载
return () => import(`@/views/${view}`)
}
}
export default permission