马宇豪
2025-01-23 e735896a68d8c1742859a06d7bc1c7c1bb61f57d
src/permission.js
@@ -8,7 +8,7 @@
NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/register']
const whiteList = ['/login', '/register','/singlePage']
router.beforeEach((to, from, next) => {
  NProgress.start()
@@ -23,11 +23,47 @@
        isRelogin.show = true
        // 判断当前用户是否已拉取完user_info信息
        store.dispatch('GetInfo').then(() => {
          isRelogin.show = false
          store.dispatch('GenerateRoutes').then(accessRoutes => {
            // 根据roles权限生成可访问的路由表
            router.addRoutes(accessRoutes) // 动态添加可访问路由表
            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
            // next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
            let path = '';
            if (accessRoutes[0].path === '/') {
              if(accessRoutes[0].children){
                path = accessRoutes[0].path + accessRoutes[0].children[0].path; //获取第一路由路径
              }else {
                path = accessRoutes[0].path
              }
            } else {
              if(accessRoutes[0].children){
                path = accessRoutes[0].path + '/' + accessRoutes[0].children[0].path; //获取第一路由路径
              }else {
                path = accessRoutes[0].path + '/'
              }
            }
            if (accessRoutes[0].children && accessRoutes[0].children[0].query !== undefined) { //如果当前路由存在路由参数,则带入
              let query = JSON.parse(accessRoutes[0].children[0].query);
              let temp = '';
              for (var val in query) {
                if (temp.length == 0) {
                  temp = "?";
                } else {
                  temp = temp + "&";
                }
                temp = temp + val + "=" + query[val];
              }
              path = path + temp;
            }
            var temp = {...to, replace: true};
            var curPath = temp.path;
            if (from.path == '/login' || curPath == "/" ) {
              next({path, replace: true}) // hack方法 确保addRoutes已完成
            } else {
              next(temp) // hack方法 确保addRoutes已完成
            }
          })
        }).catch(err => {
            store.dispatch('LogOut').then(() => {