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