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