From c7f3fd5215399b37d0511b3bd555150ff1b13507 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期一, 29 四月 2024 10:39:30 +0800
Subject: [PATCH] fix:回退原先版本

---
 src/common/utils/request.ts |   41 ++++++++++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/src/common/utils/request.ts b/src/common/utils/request.ts
index 0522895..68da2d3 100644
--- a/src/common/utils/request.ts
+++ b/src/common/utils/request.ts
@@ -1,8 +1,10 @@
-import axios from 'axios'
+import axiosClient from 'axios'
+import type { AxiosRequestConfig } from 'axios'
 import { ElMessage } from 'element-plus'
 import { getToken } from '@/common/utils/index'
+import router from '../../router/index'
 
-const Axios = axios.create({
+const instance = axiosClient.create({
   responseType: 'json',
   withCredentials: true // 鍏佽鎼哄甫 cookie
 })
@@ -10,11 +12,15 @@
 /**
  * 璇锋眰鎷︽埅鍣�
  */
-Axios.interceptors.request.use(
+instance.interceptors.request.use(
   (config) => {
     // 鑻ユ槸鏈夊仛閴存潈token , 灏辩粰澶撮儴甯︿笂token
     const token = getToken()
-    if (token) {
+    if ((token == null || token == '' || token == 'undefined') && config.url != '/api/base/login') {
+      router.push('/login')
+      return config
+      // window.location = `//${window.location.hostname}:9080`+'/login'
+    } else if (token) {
       config.headers.Authorization = 'Bearer ' + token
     }
 
@@ -28,20 +34,24 @@
 /**
  * 鍝嶅簲鎷︽埅鍣�
  */
-Axios.interceptors.response.use(
+instance.interceptors.response.use(
   (res) => {
     if (res.data.code == 200) {
-      return res.data ?? {}
+      return res.data
     } else {
       ElMessage({
         message: res.data.msg,
         type: 'error',
         duration: 3 * 1000
       })
-      return res.data ?? {}
+      return Promise.reject(res?.data)
     }
   },
   (error) => {
+    if (error.response.status === 401) {
+      // alert('JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..')
+      router.push('/login')
+    }
     let { message } = error
     if (message === 'Network Error') {
       message = '鍚庣鎺ュ彛杩炴帴寮傚父'
@@ -50,13 +60,18 @@
     } else if (message.includes('Request failed with status code')) {
       message = '绯荤粺鎺ュ彛' + message.substr(message.length - 3) + '寮傚父'
     }
-    ElMessage({
-      message: message,
-      type: 'error',
-      duration: 3 * 1000
-    })
+    const token = getToken()
+    if (token) {
+      ElMessage({
+        message: message,
+        type: 'error',
+        duration: 3 * 1000
+      })
+    }
     return Promise.reject(error)
   }
 )
 
-export default Axios
+const axios = <T>(cfg: AxiosRequestConfig) => instance.request<any, T>(cfg)
+
+export default axios

--
Gitblit v1.8.0