From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1

---
 src/utils/http.js |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

diff --git a/src/utils/http.js b/src/utils/http.js
new file mode 100644
index 0000000..85b9234
--- /dev/null
+++ b/src/utils/http.js
@@ -0,0 +1,172 @@
+import axios from "axios";
+// import  URL  from "../config/index";
+import { Message } from "element-ui";
+import allTits from "../assets/lan/tits.js";
+import { signatureGenerate } from '@/utils/crypto'
+// import router from "../router.js";
+axios.defaults.timeout = 15000;
+axios.defaults.baseURL = URL.BASE_URL;
+//http request 拦截器
+axios.interceptors.request.use(
+  (config) => {
+    const token = localStorage.getItem("spToken");
+    // config.data = JSON.stringify(config.data);
+    // config.headers = {
+    //   'Content-Type':'application/x-www-form-urlencoded'
+    // }
+    if (token) {
+      if (config.method == "get") {
+        config.params.token = token;
+      } else if (config.data == "post") {
+        config.params.token = token;
+      }
+    }
+    const signature = signatureGenerate();
+    config.headers["Sign"] = signature.signature;
+    config.headers["Systemrandom"] = signature.systemRandom;
+    config.headers["Tissuepaper"] = signature.timestamp;
+    return config;
+  },
+  (error) => {
+    return Promise.reject(error);
+  }
+);
+
+//http response 拦截器
+axios.interceptors.response.use(
+  (response) => {
+    if (response.data.code != 0) {
+      var localLan = "",
+        lanTits = "";
+        //判断语言
+      if (localStorage.getItem("localLan")) {
+        localLan = localStorage.getItem("localLan");
+        if (localLan == "en") {
+          lanTits = "tits_en";
+        } else if (localLan == "zh-CN") {
+          lanTits = "tits_zh-CN";
+        } else if (localLan == "cht") {
+          lanTits = "tits_CN";
+        } else if (localLan == "ko") {
+          lanTits = "tits_Korean";
+        } else if (localLan == "fr") {
+          lanTits = "tits_fr";
+        } else if (localLan == "de") {
+          lanTits = "tits_de";
+        } else if (localLan == "it") {
+          lanTits = "tits_it";
+        }
+      }
+      //403
+      if (response.data.code == "403") {
+        console.log('routerrouterrouterrouterrouterrouterrouterrouterrouterrouterrouter',router)
+        let lang = localStorage.getItem('localLan')
+        localStorage.clear()
+        localStorage.removeItem("username");
+        localStorage.removeItem("spToken");
+        localStorage.removeItem("vuex");
+        localStorage.setItem('localLan', lang)
+      //   router.beforeEach((to, from, next) => {
+      //     //会在任意路由跳转前执行,next一定要记着执行,不然路由不能跳转了
+      //   console.log('beforeEach')
+      //   console.log(to,from)
+      //   //
+      //   next()
+      // })
+      //  router.push("/login");
+       location.reload()
+      }
+      if (allTits[lanTits][response.data.msg]) {
+        Message(allTits[lanTits][response.data.msg]);
+      } else {
+        Message(response.data.msg);
+      }
+    }
+    return response;
+  },
+  (error) => {
+    return Promise.reject(error);
+  }
+);
+
+/**
+ * 封装get方法
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+export function fetch(url, params = {}) {
+  return new Promise((resolve, reject) => {
+    axios
+      .get(url, {
+        params: params,
+      })
+      .then((response) => {
+        resolve(response.data);
+      })
+      .catch((err) => {
+        reject(err);
+      });
+  });
+}
+
+/**
+ * 封装post请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function post(url, data = {}) {
+  return new Promise((resolve, reject) => {
+    axios.post(url, data).then(
+      (response) => {
+        resolve(response.data);
+      },
+      (err) => {
+        reject(err);
+      }
+    );
+  });
+}
+
+/**
+ * 封装patch请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function patch(url, data = {}) {
+  return new Promise((resolve, reject) => {
+    axios.patch(url, data).then(
+      (response) => {
+        resolve(response.data);
+      },
+      (err) => {
+        reject(err);
+      }
+    );
+  });
+}
+
+/**
+ * 封装put请求
+ * @param url
+ * @param data
+ * @returns {Promise}
+ */
+
+export function put(url, data = {}) {
+  return new Promise((resolve, reject) => {
+    axios.put(url, data).then(
+      (response) => {
+        resolve(response.data);
+      },
+      (err) => {
+        reject(err);
+      }
+    );
+  });
+}
+export default { fetch, patch, put, post };

--
Gitblit v1.9.3