From d30a31e7c2a9acd08da8983e42e6fdf014707a04 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 26 九月 2025 15:39:47 +0800
Subject: [PATCH] 打包修改
---
src/utils/request.ts | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/src/utils/request.ts b/src/utils/request.ts
new file mode 100644
index 0000000..23752c2
--- /dev/null
+++ b/src/utils/request.ts
@@ -0,0 +1,103 @@
+import config from '@/config'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+import { toast, showConfirm, tansParams } from '@/utils/common'
+import { RequestConfig, ResponseData } from '@/types/request'
+import useUserStore from '@/store/modules/user'
+
+let timeout = 10000
+const baseUrl = config.baseUrl
+
+const request = <T>(config: RequestConfig): Promise<ResponseData<T>> => {
+ // 鏄惁闇�瑕佽缃� token
+ const isToken = (config.headers || {}).isToken === false
+ config.header = config.header || {}
+ if (getToken() && !isToken) {
+ config.header['Authorization'] = 'Bearer ' + getToken()
+ }
+ // get璇锋眰鏄犲皠params鍙傛暟
+ if (config.params) {
+ let url = config.url + '?' + tansParams(config.params)
+ url = url.slice(0, -1)
+ config.url = url
+ }
+ // 璁板綍璇锋眰鍙傛暟
+ console.log('璇锋眰鍙戦�佸弬鏁�:', {
+ url: (config.baseUrl || baseUrl) + config.url,
+ method: config.method || 'GET',
+ headers: config.header,
+ data: config.data
+ })
+ return new Promise((resolve, reject) => {
+ uni.request({
+ method: config.method || 'GET',
+ timeout: config.timeout || timeout,
+ url: (config.baseUrl || baseUrl) + config.url,
+ data: config.data,
+ header: config.header,
+ dataType: 'json'
+ }).then(response => {
+ /* let [error, res] = response
+ if (error) {
+ toast('鍚庣鎺ュ彛杩炴帴寮傚父')
+ reject('鍚庣鎺ュ彛杩炴帴寮傚父')
+ return
+ } */
+ const res = response
+ const data: ResponseData<T> = res.data as ResponseData<T>
+ const code = data.code || 200
+ // @ts-ignore
+ const msg: string = errorCode[code] || data.msg || errorCode['default']
+ // 璁板綍鎺ユ敹鍒扮殑鍙傛暟
+ console.log('鎺ユ敹鍒扮殑鍙傛暟:', {
+ url: (config.baseUrl || baseUrl) + config.url,
+ code: code,
+ data: data
+ })
+ if (code === 401) {
+ showConfirm('鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�?').then(res => {
+ if (res.confirm) {
+ useUserStore().logOut().then(res => {
+ uni.reLaunch({ url: '/pages/login' })
+ })
+ }
+ })
+ reject('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�')
+ } else if (code === 500) {
+ toast(msg)
+ reject('500')
+ } else if (code !== 200) {
+ toast(msg)
+ reject(code)
+ }
+ resolve(data)
+ })
+ .catch(error => {
+ let { message } = error
+ if (message === 'Network Error') {
+ message = '鍚庣鎺ュ彛杩炴帴寮傚父'
+ } else if (message.includes('timeout')) {
+ message = '绯荤粺鎺ュ彛璇锋眰瓒呮椂'
+ } else if (message.includes('Request failed with status code')) {
+ message = '绯荤粺鎺ュ彛' + message.substr(message.length - 3) + '寮傚父'
+ }
+ toast(message)
+ reject(error)
+ })
+ })
+}
+
+export function postAction(url: string, data?: any, isToken: boolean = true) {
+ return request({ data, url, method: 'POST', headers: { isToken }, })
+}
+export function getAction(url: string, params?: any, isToken: boolean = true) {
+ return request({ params, url, method: 'GET', headers: { isToken }, })
+}
+export function putAction(url: string, data?: any, isToken: boolean = true) {
+ return request({ data, url, method: 'PUT', headers: { isToken }, })
+}
+export function deleteAction(url: string, data?: any, isToken: boolean = true) {
+ return request({ data, url, method: 'DELETE', headers: { isToken }, })
+}
+
+export default request
--
Gitblit v1.9.3