From b7b8202e3ecb7f720eefd7a226b2ee8166fc5057 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 04 六月 2026 14:57:17 +0800
Subject: [PATCH] 青岛移动端维护

---
 utils/request.js |   59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/utils/request.js b/utils/request.js
index f58a4fb..65f07de 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -1,5 +1,6 @@
 // @/utils/request.js
-
+// 娣诲姞鍏ㄥ眬鏍囪
+let isRedirectingToLogin = false;
 /**
  * 鏄剧ずToast鎻愮ず锛堝吋瀹箄view-plus锛�
  * @param {string} message 鎻愮ず鍐呭
@@ -57,12 +58,38 @@
  * 璺宠浆鍒扮櫥褰曢〉
  */
 const navigateToLogin = () => {
-  uni.redirectTo({
-    url:
-      config.loginPage +
-      "?redirect=" +
-      encodeURIComponent(getCurrentPagePath()),
-  });
+  if (isRedirectingToLogin) {
+    console.log('姝e湪璺宠浆鐧诲綍椤典腑锛岃烦杩�');
+    return;
+  }
+  
+  isRedirectingToLogin = true;
+  
+  const pages = getCurrentPages();
+  const currentPage = pages[pages.length - 1];
+  const isLoginPage = currentPage && currentPage.route && 
+                     currentPage.route.includes('login/Login');
+  
+  if (isLoginPage) {
+    console.log('褰撳墠宸插湪鐧诲綍椤碉紝涓嶈烦杞�');
+    isRedirectingToLogin = false;
+    return;
+  }
+  
+  console.log('璺宠浆鍒扮櫥褰曢〉');
+  setTimeout(() => {
+    uni.redirectTo({
+      url: config.loginPage + "?redirect=" + encodeURIComponent(getCurrentPagePath()),
+      success: () => {
+        console.log('璺宠浆鐧诲綍椤垫垚鍔�');
+        isRedirectingToLogin = false;
+      },
+      fail: () => {
+        console.log('璺宠浆鐧诲綍椤靛け璐�');
+        isRedirectingToLogin = false;
+      }
+    });
+  }, 100);
 };
 
 /**
@@ -94,13 +121,25 @@
 
   // 濡傛灉璇锋眰鍦ㄧ櫧鍚嶅崟涓紝鐩存帴鏀捐
   if (isInWhiteList(options.url)) {
+    console.log('鐧藉悕鍗曟帴鍙o紝璺宠繃token鏍¢獙:', options.url);
     return options;
   }
 
-  // 濡傛灉鏈櫥褰曚笖涓嶆槸鐧藉悕鍗曟帴鍙o紝璺宠浆鐧诲綍
-  // console.log(token,'token');
-
+  // 鉁� 鍏抽敭淇敼锛氬湪鐧诲綍椤垫椂涓嶈繘琛岃烦杞�
   if (!token) {
+    const pages = getCurrentPages();
+    const currentPage = pages[pages.length - 1];
+    const isLoginPage = currentPage && currentPage.route && 
+                       (currentPage.route.includes('login/Login') || 
+                        currentPage.route.includes('login/DingTalkLogin'));
+    
+    if (isLoginPage) {
+      console.log('褰撳墠鏄櫥褰曢〉锛屽厑璁告棤token璇锋眰');
+      return options;
+    }
+    
+    // 涓嶅湪鐧诲綍椤碉紝鎵嶈烦杞�
+    console.log('鏈櫥褰曚笖涓嶅湪鐧诲綍椤碉紝璺宠浆鍒扮櫥褰曢〉');
     navigateToLogin();
     throw new Error("鏈櫥褰�");
   }

--
Gitblit v1.9.3