From 38b161e4d52362081bfe78fb5b51fbf384db7ce2 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 06 5月 2025 07:22:21 +0800
Subject: [PATCH] 222

---
 HIAWms/web/src/utils/request.ts |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/HIAWms/web/src/utils/request.ts b/HIAWms/web/src/utils/request.ts
new file mode 100644
index 0000000..506c8e4
--- /dev/null
+++ b/HIAWms/web/src/utils/request.ts
@@ -0,0 +1,60 @@
+import { default as axios, AxiosRequestConfig } from 'axios'
+import { Session } from '@/utils/storage'
+import router from '@/router'
+
+// 閰嶇疆鏂板缓涓�涓� axios 瀹炰緥
+const service = axios.create({
+  baseURL: '/',
+  timeout: 50000,
+  headers: {
+    'Content-Type': 'application/json;charset=UTF-8',
+    'X-Requested-With': 'XMLHttpRequest',
+    'Accept-Language': 'zh-Hans'
+  },
+})
+
+// 璇锋眰鍓�
+service.interceptors.request.use(
+  async (config: any) => {
+    const token = Session.get('Token') || import.meta.env.VITE_TOKEN
+    // console.log('Token', token);
+    if (token) config.headers['Authorization'] = `Bearer ${token}`
+    config.headers['X-Requested-With'] = 'XMLHttpRequest'
+    if (typeof config.data !== 'object') config.data = JSON.stringify(config.data)
+    return config
+  },
+  (error: any) => {
+    return Promise.reject(error)
+  }
+)
+
+// 鍝嶅簲鍚�
+service.interceptors.response.use(
+  (response: any) => {
+    const { data } = response;
+    // if (data.statusCode == 401) {
+    //   ElMessage.error('璇风櫥褰�');
+    //   router.push({ name: '/login' })
+    //   return;
+    // }
+    return data;
+  },
+  (error: any) => {
+    Session.remove('Token')
+    return Promise.reject(error)
+  }
+)
+
+type Data = unknown
+
+type Request = {
+  <D = Data>(url: string, config?: AxiosRequestConfig): Promise<D>
+  get<D = Data>(url: string, config?: AxiosRequestConfig): Promise<D>
+  delete<D = Data>(url: string, config?: AxiosRequestConfig): Promise<D>
+  post<D = Data>(url: string, data?: any, config?: AxiosRequestConfig): Promise<D>
+  put<D = Data>(url: string, data?: any, config?: AxiosRequestConfig): Promise<D>
+} & typeof service
+
+const request = service as Request
+export { request as default, request }
+

--
Gitblit v1.9.3