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/utils/request.ts | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/eims-ui-mobile/src/utils/request.ts b/eims-ui-mobile/src/utils/request.ts new file mode 100644 index 0000000..79f05ab --- /dev/null +++ b/eims-ui-mobile/src/utils/request.ts @@ -0,0 +1,76 @@ +import { CustomRequestOptions } from '@/interceptors/request' + +/** + * 璇锋眰鏂规硶: 涓昏鏄 uni.request 鐨勫皝瑁咃紝鍘婚�傞厤 openapi-ts-request 鐨� request 鏂规硶 + * @param options 璇锋眰鍙傛暟 + * @returns 杩斿洖 Promise 瀵硅薄 + */ +const http = <T>(options: CustomRequestOptions) => { + // 1. 杩斿洖 Promise 瀵硅薄 + return new Promise<T>((resolve, reject) => { + uni.request({ + ...options, + dataType: 'json', + // #ifndef MP-WEIXIN + responseType: 'json', + // #endif + // 鍝嶅簲鎴愬姛 + success(res) { + // 鐘舵�佺爜 2xx锛屽弬鑰� axios 鐨勮璁� + if (res.statusCode >= 200 && res.statusCode < 300) { + // 2.1 鎻愬彇鏍稿績鏁版嵁 res.data + resolve(res.data as T) + } else if (res.statusCode === 401) { + // 401閿欒 -> 娓呯悊鐢ㄦ埛淇℃伅锛岃烦杞埌鐧诲綍椤� + // userStore.clearUserInfo() + // uni.navigateTo({ url: '/pages/login/login' }) + reject(res) + } else { + // 鍏朵粬閿欒 -> 鏍规嵁鍚庣閿欒淇℃伅杞绘彁绀� + !options.hideErrorToast && + uni.showToast({ + icon: 'none', + title: (res.data as T & { msg?: string })?.msg || '璇锋眰閿欒', + }) + reject(res) + } + }, + // 鍝嶅簲澶辫触 + fail(err) { + uni.showToast({ + icon: 'none', + title: '缃戠粶閿欒锛屾崲涓綉缁滆瘯璇�', + }) + reject(err) + }, + }) + }) +} + +/* + * openapi-ts-request 宸ュ叿鐨� request 璺ㄥ鎴风閫傞厤鏂规硶 + */ +export default function request<T = unknown>( + url: string, + options: Omit<CustomRequestOptions, 'url'> & { + params?: Record<string, unknown> + headers?: Record<string, unknown> + }, +) { + const requestOptions = { + url, + ...options, + } + + if (options.params) { + requestOptions.query = requestOptions.params + delete requestOptions.params + } + + if (options.headers) { + requestOptions.header = options.headers + delete requestOptions.headers + } + + return http<T>(requestOptions) +} -- Gitblit v1.9.3