From 38712ae83223cb244020e255fc37e1ce35775c45 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 09 四月 2026 13:53:40 +0800
Subject: [PATCH] 优化

---
 src/utils/axios.js |   43 ++++++++++++++++---------------------------
 1 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/src/utils/axios.js b/src/utils/axios.js
index 86cea2e..e843471 100644
--- a/src/utils/axios.js
+++ b/src/utils/axios.js
@@ -1,6 +1,8 @@
 import axios from 'axios'
 import $qxueyou from '@/config/qxueyou.js'
 import { getUUID } from "@/utils/tool.js";
+import { ElMessage } from 'element-plus';
+import router from '@/router/index.js'
 
 let createAxios = axios.create({
   baseURL: $qxueyou.serverRoot,
@@ -43,6 +45,12 @@
   hasTokens() {
     return !!(this.getAccessToken() && this.getRefreshToken());
   },
+  reLogin() {
+    const currentPath = router.currentRoute._value.path
+    if (currentPath.includes('/h5/')) {
+      router.push({ path: '/h5/login', query: router.currentRoute._value.query })
+    }
+  }
 }
 let isRefreshing = false;
 // 鍒锋柊 token 鏈熼棿鐨勮姹傞槦鍒�
@@ -70,17 +78,6 @@
     throw error;
   }
 }
-
-let strTrim = function(data) {
-  let newData = {...data}
-  Object.keys(newData).forEach((key) => {
-    if (typeof newData[key] === 'string') {
-      newData[key] = newData[key].trim()
-    }
-  })
-  return newData
-}
-
 //缃戠粶璇锋眰鐩戝惉
 createAxios.interceptors.request.use(
   function(config) {
@@ -88,17 +85,15 @@
     if (!config.url.includes('/auth/refresh-token')) {
       config.headers = {
         ...config.headers,
-        Authorization: localStorage.getItem('accessToken')
+        Authorization: localStorage.getItem(ACCESS_TOKEN_KEY)
       }
     }
     config.flag = getUUID().toString().slice(-4)
     if (config.data) {
       console.log(`data-${config.flag} `, config.data)
-      // config.data = JSON.stringify(config.data)
     }
     if (config.params) {
       console.log(`params-${config.flag} `, config.params)
-      // config.params = strTrim(config.params)
     }
     return config
   },
@@ -112,10 +107,13 @@
     const resultCode = response.data.code;
     const originalRequest = response.config;
     if (response.data && [500, 400].includes(resultCode)) {
-      console.log(response)
+      console.log(`url-${response.config.flag}`, response.config.url, response)
       return response
     }
     if (response.data && resultCode == '401') {
+      let filterUrlList = ['/system/wx/js/signature']
+      if (filterUrlList.includes(response.config.url)){ return }
+
       if (!originalRequest._retry && tokenUtils.getRefreshToken) {
         originalRequest._retry = true;
 
@@ -142,44 +140,35 @@
           originalRequest.headers.Authorization = newAccessToken;
           return createAxios(originalRequest)
         } catch (refreshError) {
-          console.log(refreshError)
           // 鍒锋柊澶辫触锛屽鐞嗛槦鍒椾腑鐨勮姹�
           refreshQueue.forEach(({ reject }) => {
             reject(refreshError);
           });
           refreshQueue = [];
           tokenUtils.clearTokens();
-          // $store.commit("session/loginFlag", false);
-          // $store.commit("session/userInfo", {});
-          // 鍙互鍦ㄨ繖閲岃Е鍙戠櫥褰曢〉闈㈣烦杞�
+          tokenUtils.reLogin()
         } finally {
           isRefreshing = false;
         }
       } else {
         tokenUtils.clearTokens();
-        // $store.commit("session/loginFlag", false);
-        // $store.commit("session/userInfo", {});
+        tokenUtils.reLogin()
       }
     }
-
     console.log(`url-${response.config.flag} `, response.config.url, response.data)
     return response
   },
   error => {
-    // store.commit('network/changeNetworkState', false)
     if (!error.response) return Promise.reject(error)
 
-    // store.commit('network/status', error.response.status)
     if (401 === error.response.status) {
       // 鍒锋柊 token 鐨勮姹傝繑鍥� 401 鏃讹紝鐩存帴杩斿洖閿欒锛屼笉瑕佹姏鍑烘柊鐨勯敊璇�
       if (error.config && error.config.url && error.config.url.includes('/auth/refresh-token')) {
         return Promise.reject(error)
       }
-      // store.commit('session/clearUser')
-      // store.commit('endea/clearShareK')
-      // store.commit('network/logout')
       throw new Error('鐧诲綍澶辨晥')
     }
+    ElMessage.error(error)
     return Promise.reject(error)
   }
 )

--
Gitblit v1.8.0