From db905ecd14f63dba9337b4f4715584ef2d7e8c7e Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 07 三月 2025 14:45:00 +0800 Subject: [PATCH] 修改 --- src/permission.js | 40 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/permission.js b/src/permission.js index 609d215..1ff76dc 100644 --- a/src/permission.js +++ b/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(() => { -- Gitblit v1.9.2