From 3c25c2a5177be5c11d250861c4c64ca2676700a3 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期二, 18 六月 2024 16:52:07 +0800
Subject: [PATCH] feat:请求封装

---
 src/api/index.js |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index e69de29..d2351d2 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -0,0 +1,75 @@
+import axios from "axios";
+import { useRoute } from "vue-router";
+const route = useRoute();
+axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
+
+const service = axios.create({
+  baseURL: import.meta.env.VITE_BASE_API_URL,
+  timeout: 15000,
+});
+
+/**
+ * 鑷畾涔夌姸鎬佺爜澶勭悊
+ * @param {*} status 鐘舵�佺爜
+ * @param {*} info 淇℃伅
+ */
+const errorHandle = (status, info) => {
+  switch (status) {
+    case 400:
+      console.log("璇箟鏈夎");
+      break;
+    case 401:
+      console.log("鏈嶅姟鍣ㄨ璇佸け璐�");
+      route.replace('/login');
+      break;
+    case 403:
+      console.log("鏈嶅姟鍣ㄦ嫆缁濊闂�");
+      route.replace('/login');
+      break;
+    case 404:
+      console.log("鍦板潃閿欒");
+      break;
+    case 500:
+      console.log("鏈嶅姟鍣ㄩ亣鍒版剰澶�");
+      break;
+    case 502:
+      console.log("鏈嶅姟鍣ㄦ棤鍝嶅簲");
+      break;
+    default:
+      console.log(info);
+      break;
+  }
+};
+
+
+// request鎷︽埅鍣�
+service.interceptors.request.use(
+  (config) => {
+    
+    // const token = localStorage.getItem('authToken');
+    // if (token) {
+    //     config.headers['Authorization'] = `Bearer ${token}`;
+    // }
+
+    return config;
+  },
+  (error) => {
+    // 杩斿洖Promise.reject(error)锛岃繖鏍蜂細瑙﹀彂鍚庣画鐨勯敊璇鐞嗗櫒
+    Promise.reject(error);
+  },
+);
+
+// response鎷︽埅鍣�
+service.interceptors.response.use(
+  (res) => {
+    if (response.status === 200 && response.data.code === 200) return Promise.resolve(response.data);
+    else return Promise.reject(response.data);
+  },
+  (error) => {
+    const { response } = error;
+    errorHandle(response.status, response.info);
+    return Promise.reject(error);
+  },
+);
+
+export default service;

--
Gitblit v1.8.0