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 | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/utils/request.js b/utils/request.js
index 8249b77..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 鎻愮ず鍐呭
@@ -30,6 +31,7 @@
// 娣诲姞鐧藉悕鍗曢厤缃紙涓嶉渶瑕佹牎楠宼oken鐨勬帴鍙o級
whiteList: [
"/login", // 鐧诲綍鎺ュ彛
+ "/getToken",
// '/dingtalk/auth/login', // 閽夐拤鎺堟潈鐧诲綍鎺ュ彛
// '/dingtalk/auth/bind' // 閽夐拤鎺堟潈鐧诲綍缁戝畾鎺ュ彛
],
@@ -56,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);
};
/**
@@ -93,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