From 2b3715f1610b4176d7abe33e34542389cef61853 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期六, 12 四月 2025 17:12:22 +0800
Subject: [PATCH] Merge branch 'main' of http://lanpucloud.cn:1111/r/eims-master

---
 eims-ui-mobile/src/interceptors/request.ts |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/eims-ui-mobile/src/interceptors/request.ts b/eims-ui-mobile/src/interceptors/request.ts
new file mode 100644
index 0000000..1f84b31
--- /dev/null
+++ b/eims-ui-mobile/src/interceptors/request.ts
@@ -0,0 +1,68 @@
+/* eslint-disable no-param-reassign */
+import qs from 'qs'
+import { useUserStore } from '@/store'
+import { platform } from '@/utils/platform'
+import { getEnvBaseUrl } from '@/utils'
+
+export type CustomRequestOptions = UniApp.RequestOptions & {
+  query?: Record<string, any>
+  /** 鍑洪敊鏃舵槸鍚﹂殣钘忛敊璇彁绀� */
+  hideErrorToast?: boolean
+} & IUniUploadFileOptions // 娣诲姞uni.uploadFile鍙傛暟绫诲瀷
+
+// 璇锋眰鍩哄噯鍦板潃
+const baseUrl = getEnvBaseUrl()
+
+// 鎷︽埅鍣ㄩ厤缃�
+const httpInterceptor = {
+  // 鎷︽埅鍓嶈Е鍙�
+  invoke(options: CustomRequestOptions) {
+    // 鎺ュ彛璇锋眰鏀寔閫氳繃 query 鍙傛暟閰嶇疆 queryString
+    if (options.query) {
+      const queryStr = qs.stringify(options.query)
+      if (options.url.includes('?')) {
+        options.url += `&${queryStr}`
+      } else {
+        options.url += `?${queryStr}`
+      }
+    }
+    // 闈� http 寮�澶撮渶鎷兼帴鍦板潃
+    if (!options.url.startsWith('http')) {
+      // #ifdef H5
+      // console.log(__VITE_APP_PROXY__)
+      if (JSON.parse(__VITE_APP_PROXY__)) {
+        // 鍟ラ兘涓嶉渶瑕佸仛
+      } else {
+        options.url = baseUrl + options.url
+      }
+      // #endif
+      // 闈濰5姝e父鎷兼帴
+      // #ifndef H5
+      options.url = baseUrl + options.url
+      // #endif
+      // TIPS: 濡傛灉闇�瑕佸鎺ュ涓悗绔湇鍔★紝涔熷彲浠ュ湪杩欓噷澶勭悊锛屾嫾鎺ユ垚鎵�闇�瑕佺殑鍦板潃
+    }
+    // 1. 璇锋眰瓒呮椂
+    options.timeout = 10000 // 10s
+    // 2. 锛堝彲閫夛級娣诲姞灏忕▼搴忕璇锋眰澶存爣璇�
+    options.header = {
+      platform, // 鍙�夛紝涓� uniapp 瀹氫箟鐨勫钩鍙颁竴鑷达紝鍛婅瘔鍚庡彴鏉ユ簮
+      ...options.header,
+    }
+    // 3. 娣诲姞 token 璇锋眰澶存爣璇�
+    const userStore = useUserStore()
+    const { token } = userStore.userInfo as unknown as IUserInfo
+    if (token) {
+      options.header.Authorization = `Bearer ${token}`
+    }
+  },
+}
+
+export const requestInterceptor = {
+  install() {
+    // 鎷︽埅 request 璇锋眰
+    uni.addInterceptor('request', httpInterceptor)
+    // 鎷︽埅 uploadFile 鏂囦欢涓婁紶
+    uni.addInterceptor('uploadFile', httpInterceptor)
+  },
+}

--
Gitblit v1.9.3