From fe97f78b9a343ee9fa45a3531d03d73dcd1df31b Mon Sep 17 00:00:00 2001 From: qx <1084500556@qq.com> Date: 星期三, 06 八月 2025 10:15:12 +0800 Subject: [PATCH] :测试提交“ --- utils/request.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 100 insertions(+), 1 deletions(-) diff --git a/utils/request.js b/utils/request.js index 821ac67..8fa9fbe 100644 --- a/utils/request.js +++ b/utils/request.js @@ -19,10 +19,13 @@ '/api/updatePhone' ] +<<<<<<< HEAD // 鉁� 璇锋眰缂撳瓨鍜岄槻鎶栫鐞� const pendingRequests = new Map(); // 瀛樺偍姝e湪绛夊緟鐨勮姹� const requestCache = new Map(); // 瀛樺偍缂撳瓨鐨勮姹傜粨鏋� +======= +>>>>>>> master const request = config => { const isToken = (config.headers || {}).isToken === false config.header = config.header || {} @@ -44,6 +47,7 @@ config.url = url } +<<<<<<< HEAD // 鉁� 鐢熸垚鍞竴璇锋眰鏍囪瘑锛屽寘鍚� URL銆佹柟娉曞拰鍙傛暟 const requestKey = `${config.url}_${config.method}_${JSON.stringify(config.data || {})}`; @@ -171,4 +175,99 @@ }); } -export default request; \ No newline at end of file +export default request; +======= + // 鉁� 鍒ゆ柇鏄惁闇�瑕佸姞瀵� + const isEncryptApi = encryptApiList.includes(config.url) + + // 鐧诲綍鎺ュ彛绀轰緥锛堝亣濡備綘鐨勭櫥褰曟帴鍙f槸 /api/login锛� + const isLoginRequest = config.url.includes('/login') + + let data = config.data + if (isEncryptApi) { + console.log('[鍔犲瘑鍓嶇殑data]', config.data) + data = encrypt(JSON.stringify(config.data)) + } else if (isLoginRequest) { + data = JSON.stringify(config.data) + } else { + // 鍏朵粬鎺ュ彛淇濇寔鍘熸牱 + 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: data, + header: config.header, + responseType: config.responseType || 'text', + dataType: config.responseType === 'arraybuffer' ? undefined : 'json' + }).then(response => { + let [error, res] = response + if (error) { + toast('鍚庣鎺ュ彛杩炴帴寮傚父') + reject('鍚庣鎺ュ彛杩炴帴寮傚父') + return + } + + let resData + try { + if (isEncryptApi) { + const decrypted = decrypt(res.data) + resData = JSON.parse(decrypted) + } else if (isLoginRequest) { + resData = typeof res.data === 'string' ? JSON.parse(res.data) : res.data + } else { + resData = res.data + } + } catch (e) { + console.error('鍝嶅簲瑙f瀽澶辫触:', e) + toast('鍝嶅簲鏁版嵁澶勭悊澶辫触') + reject('鍝嶅簲鏁版嵁澶勭悊澶辫触') + return + } + + if (config.responseType === 'arraybuffer') { + resolve(resData) + return + } + + const code = resData.code || 200 + const msg = errorCode[code] || resData.msg || errorCode['default'] + + if (code === 401) { + showConfirm('鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�?').then(res => { + if (res.confirm) { + store.dispatch('LogOut').then(() => { + uni.reLaunch({ url: '/pages/login' }) + }) + } + }) + reject('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�') + } else if (code === 500) { + toast(msg) + reject(resData) + } else if (code !== 200) { + toast(msg) + reject(resData) + } else { + resolve(resData) + } + }).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 default request +>>>>>>> master -- Gitblit v1.8.0