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