From c3bb35b20d6e076f73a1cad50fd6b9b94ca399a7 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 06 一月 2025 16:15:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/permission.js | 38 +++++++++++++++++++++++++++++++++++++- 1 files changed, 37 insertions(+), 1 deletions(-) diff --git a/src/permission.js b/src/permission.js index 609d215..0aed761 100644 --- a/src/permission.js +++ b/src/permission.js @@ -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