From 9d7de030d38f8d71fdf54ddfe26e46e71f17e9c0 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 20 Sep 2025 15:21:43 +0800
Subject: [PATCH] 1

---
 src/axios/index.js |  135 +++++++++++++++++++++++++-------------------
 1 files changed, 76 insertions(+), 59 deletions(-)

diff --git a/src/axios/index.js b/src/axios/index.js
index 67185a9..f0d72d7 100644
--- a/src/axios/index.js
+++ b/src/axios/index.js
@@ -1,62 +1,73 @@
-import axios from 'axios' // 引入axios
-import qs from 'qs' // 引入qs
-import store from '../store'
-import APIUrl from './api.url' // 引入api.url.js
-import router from '../router'
+import axios from "axios"; // 引入axios
+import qs from "qs"; // 引入qs
+import store from "../store";
+import APIUrl from "../config/index"; // 引入config
+import router from "../router";
+import { Message } from "element-ui";
 
 // axios 默认配置  更多配置查看Axios中文文档
-axios.defaults.timeout = 50000 // 超时默认值
-axios.defaults.baseURL = APIUrl.baseURL // 默认baseURL
-// axios.defaults.responseType  = 'json'         // 默认数据响应类型
-axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
-axios.defaults.withCredentials = true // 表示跨域请求时是否需要使用凭证
+axios.defaults.timeout = 50000; // 超时默认值
+axios.defaults.baseURL = APIUrl.baseURL; // 默认baseURL
+axios.defaults.responseType = "json"; // 默认数据响应类型
+// axios.defaults.headers.common["Content-Type"] =
+//   "application/json;charset=UTF-8";
+axios.defaults.headers.common["Content-Type"] =
+  "application/x-www-form-urlencoded";
+axios.defaults.withCredentials = true; // 表示跨域请求时是否需要使用凭证
 
 // http request 拦截器
 // 在ajax发送之前拦截 比如对所有请求统一添加header token
 axios.interceptors.request.use(
-  config => {
-    // config.data = JSON.stringify(config.data);
-    // config.headers = {
-    //     'Content-Type':'application/x-www-form-urlencoded'
-    // };
-    // if (token) {
-    // if (store.state.userId) {
-    //     config.headers.Authorization = `token ${store.state.userId}`;
-    // }
-    // console.log(config)
-    var token = window.localStorage.getItem('tokens');
-    config.headers["USERTOKEN"] = token ? token : '';
-    return config
+  (config) => {
+    config.headers["lang"] = localStorage.getItem("language")
+      ? localStorage.getItem("language")
+      : "en";
+    var token = store.state.token || window.localStorage.getItem("tokens");
+    config.headers["USERTOKEN"] = token ? token : "";
+    return config;
   },
-  err => {
-    return Promise.reject(err)
+  (err) => {
+    return Promise.reject(err);
   }
-)
+);
 
 // http response 拦截器
 // ajax请求回调之前拦截 对请求返回的信息做统一处理 比如error为401无权限则跳转到登陆界面
 axios.interceptors.response.use(
-  response => {
-    if (response.data.msg) {
-      if (response.data.msg.indexOf('請先登錄') > -1 || response.data.msg.indexOf('請先登陸') > -1) {
-        response.data.msg = '您還未登錄,請先登錄'
-        window.localStorage.removeItem('tokens')
-        store.state.haslogin = false
-        //console.log(response.data)
-        router.replace({
-          path: 'login',
-        })
-      }
+  (response) => {
+    // console.log("response", response);
+    // 需要登录确没有登录时跳转到登录页面
+    if (response.data && response.data.status === 401) {
+      store.commit("undataToken", null);
+      window.localStorage.removeItem("USERTOKEN");
+      router.push("/login");
+      Message({
+        message: response.data.msg,
+        type: "warning",
+      });
+      return response.data;
     }
-    return response
+    // 正常通过获取到数据时
+    else if (response.data.status === 0) {
+      return response.data;
+    }
+    // 其他错误时
+    else {
+      Message({
+        message: response.data.msg,
+        type: "warning",
+      });
+      return response.data;
+    }
   },
-  error => {
-    console.log(error)
-    return Promise.reject(error)
+  (error) => {
+    console.log("error", error);
+    // return Promise.reject(error);
+    return error;
   }
-)
+);
 
-export default axios // 这句千万不能漏下!!!
+export default axios; // 这句千万不能漏下!!!
 
 /**
  * post 方法封装
@@ -64,15 +75,18 @@
  * @param data
  * @returns {Promise}
  */
-export function post (url, data = {}) {
+export function post(url, data = {}) {
   return new Promise((resolve, reject) => {
-    axios.post(url, qs.stringify(data))
-      .then(response => {
-        resolve(response.data)
-      }, err => {
-        reject(err)
-      })
-  })
+    axios.post(url, qs.stringify(data)).then(
+      (response) => {
+        resolve(response);
+      },
+      (err) => {
+        console.log("post err", err);
+        reject(err);
+      }
+    );
+  });
 }
 
 /**
@@ -81,15 +95,18 @@
  * @param data
  * @returns {Promise}
  */
-export function get (url, data = {}) {
+export function get(url, data = {}) {
   return new Promise((resolve, reject) => {
-    axios.get(url, { params: data })
-      .then(response => {
-        resolve(response.data)
-      }, err => {
-        reject(err)
-      })
-  })
+    axios.get(url, { params: data }).then(
+      (response) => {
+        resolve(response);
+      },
+      (err) => {
+        console.log("get err", err);
+        // reject(err);
+      }
+    );
+  });
 }
 
 /**

--
Gitblit v1.9.3