c1b532ad
梁保满
权限配置,路由基础设置
|
1
|
import NProgress from "nprogress"
|
c1b532ad
梁保满
权限配置,路由基础设置
|
2
3
|
import router from "./index"
import store from "../store"
|
13b58a42
梁保满
备题组卷部分前端页面基本完成
|
4
|
import {addrouters} from "./index"
|
c1b532ad
梁保满
权限配置,路由基础设置
|
5
6
7
8
9
10
|
// 获取角色信息,根据用户权限动态加载路由
router.beforeEach((to, from, next) => {
NProgress.start()
if (store.getters.token) {
if (to.path === "/login") {
|
4c4f7640
梁保满
路由表,路由前端文件
|
11
|
next()
|
c1b532ad
梁保满
权限配置,路由基础设置
|
12
|
} else {
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
13
14
15
16
17
18
19
20
21
22
|
if (!store.getters.info.permissions) {
!(async function getAddRouters() {
// 省略 axios 请求代码 通过 token 向后台请求用户权限等信息,这里用假数据赋值
await store.commit("setInfo", {
permissions: [
{
role: "superAdmin",
roleName: "超级管理员"
}
],
|
d4283687
梁保满
首页布局完成,页面顶部返回组件
|
23
|
name: "李老师",
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
24
25
26
27
28
29
30
|
// avatar: data.avatar ? data.avatar : "",
// uid: data.id,
// authorityRouter:[],
})
await store.commit("setRouters", addrouters)
let newAddRouters = store.getters.addRouters
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
31
32
33
|
newAddRouters.forEach(res => {
router.addRoute(res)
})
|
13b58a42
梁保满
备题组卷部分前端页面基本完成
|
34
|
next({path: to.fullPath})
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
35
36
|
}())
} else {
|
c1b532ad
梁保满
权限配置,路由基础设置
|
37
|
next()
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
38
|
}
|
c1b532ad
梁保满
权限配置,路由基础设置
|
39
40
41
42
43
|
}
} else {
if (to.path === "/login") {
next()
}
|
4c4f7640
梁保满
路由表,路由前端文件
|
44
45
|
next({ path: "/login" })
|
c1b532ad
梁保满
权限配置,路由基础设置
|
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
}
})
router.afterEach(() => {
NProgress.done()
})
// // 真实使用
// import fetchUser from "@/api/apis/user"
//
// router.beforeEach((to, from, next) => {
// if (store.getters.token && store.getters.token !== "undefined") {
// // store.dispatch('setToken', store.getters.token)
// if (to.path === "/login") {
// next({path: "/"})
// } else {
// if (!store.getters.info) {
// (async function getAddRouters () {
// fetchUser.fetchGetUserInfo().then(async function (response) {
// await store.dispatch("setInfo", response.data)
// await store.dispatch("newRoutes", store.getters.info.authorityRouter)
// await router.addRoutes(store.getters.addRouters)
// next({path: "/index"})
// }).catch(function (error) {
// console.log(error)
// })
// }())
// } else {
// let is404 = to.matched.some(record => {
// console.log(record)
// if (record.meta.role) {
// return store.getters.info.authorityRouter === -1
// }
// })
// if (is404) {
// next({path: "/404"})
// return false
// }
// next()
// }
// }
// } else {
// if (to.path === "/login") {
// next()
// }
// next({path: "/login"})
// }
// })
|