Blame view

src/router/permission.js 2.59 KB
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"})
  //   }
  // })