From 89a5fedfe041ebacb2d81ecae1023b206cd3f353 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期四, 24 四月 2025 09:10:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/main' --- eims-ui-mobile/src/utils/http.ts | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 47 insertions(+), 3 deletions(-) diff --git a/eims-ui-mobile/src/utils/http.ts b/eims-ui-mobile/src/utils/http.ts index 4e3f38c..7314ccd 100644 --- a/eims-ui-mobile/src/utils/http.ts +++ b/eims-ui-mobile/src/utils/http.ts @@ -1,6 +1,10 @@ import { CustomRequestOptions } from '@/interceptors/request' +import { useUserStore, useAccessStore } from '@/store' export const http = <T>(options: CustomRequestOptions) => { + uni.showLoading({ + title: '鍔犺浇涓�', + }) // 1. 杩斿洖 Promise 瀵硅薄 return new Promise<IResData<T>>((resolve, reject) => { uni.request({ @@ -11,14 +15,39 @@ // #endif // 鍝嶅簲鎴愬姛 success(res) { + uni.hideLoading() // 鐘舵�佺爜 2xx锛屽弬鑰� axios 鐨勮璁� if (res.statusCode >= 200 && res.statusCode < 300) { // 2.1 鎻愬彇鏍稿績鏁版嵁 res.data - resolve(res.data as IResData<T>) + if ((res.data as IResData<T>).code === 200) { + resolve(((res.data as IResData<T>).data || res.data) as IResData<T>) + } else if ((res.data as IResData<T>).code === 401) { + uni.showToast({ + icon: 'none', + title: '鐧诲綍瓒呮椂锛岃閲嶆柊鐧诲綍锛�', + }) + // 401閿欒 -> 娓呯悊鐢ㄦ埛淇℃伅锛岃烦杞埌鐧诲綍椤� + useAccessStore().clearAccessInfo() + useUserStore().clearUserInfo() + const loginRoute = '/pages/login/index' + // 閲嶆柊鐧诲綍鍚庤繑鍥為〉闈� + const url = '/pages/home/index' + const redirectRoute = `${loginRoute}?redirect=${encodeURIComponent(url)}` + uni.navigateTo({ url: redirectRoute }) + reject(res) + } else { + // 鍏朵粬閿欒 -> 鏍规嵁鍚庣閿欒淇℃伅杞绘彁绀� + uni.showToast({ + icon: 'none', + title: (res.data as IResData<T>).msg || '璇锋眰閿欒', + }) + reject(res) + } } else if (res.statusCode === 401) { // 401閿欒 -> 娓呯悊鐢ㄦ埛淇℃伅锛岃烦杞埌鐧诲綍椤� - // userStore.clearUserInfo() - // uni.navigateTo({ url: '/pages/login/login' }) + useAccessStore().clearAccessInfo() + useUserStore().clearUserInfo() + uni.navigateTo({ url: '/pages/login/index' }) reject(res) } else { // 鍏朵粬閿欒 -> 鏍规嵁鍚庣閿欒淇℃伅杞绘彁绀� @@ -37,6 +66,7 @@ title: '缃戠粶閿欒锛屾崲涓綉缁滆瘯璇�', }) reject(err) + uni.hideLoading() }, }) }) @@ -76,5 +106,19 @@ }) } +export const httpPut = <T>( + url: string, + data?: Record<string, any>, + query?: Record<string, any>, +) => { + return http<T>({ + url, + query, + data, + method: 'PUT', + }) +} + http.get = httpGet http.post = httpPost +http.put = httpPut -- Gitblit v1.9.3