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