From c7566bba45e6f90594d36ec4b80ac4ff89f577ee Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 十月 2026 14:19:36 +0800
Subject: [PATCH] 项目重构

---
 src/utils/request.js |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/utils/request.js b/src/utils/request.js
index 26fe001..f93bf2e 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -16,8 +16,8 @@
 const service = axios.create({
   // axios涓姹傞厤缃湁baseURL閫夐」锛岃〃绀鸿姹俇RL鍏叡閮ㄥ垎
   baseURL: import.meta.env.VITE_APP_BASE_API,
-  // 瓒呮椂
-  timeout: 10000
+  // 瓒呮椂锛堜笟鍔″畾鍒讹細閮ㄥ垎鎶ヨ〃/瀵煎嚭鎺ュ彛鑰楁椂杈冮暱锛屾斁瀹藉埌 60s锛�
+  timeout: 10000 * 60
 })
 
 // request鎷︽埅鍣�
@@ -28,6 +28,8 @@
   const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
   // 闂撮殧鏃堕棿(ms)锛屽皬浜庢鏃堕棿瑙嗕负閲嶅鎻愪氦
   const interval = (config.headers || {}).interval || 1000
+  // 涓氬姟瀹氬埗锛氳鎺ュ彛鍏佽杩炵偣閲嶅鎻愪氦
+  const repeatSubmitWhitelist = ['/insOrderPlan/saveInsContext']
   if (getToken() && !isToken) {
     config.headers['Authorization'] = 'Bearer ' + getToken() // 璁╂瘡涓姹傛惡甯﹁嚜瀹氫箟token 璇锋牴鎹疄闄呮儏鍐佃嚜琛屼慨鏀�
   }
@@ -37,6 +39,8 @@
     url = url.slice(0, -1)
     config.params = {}
     config.url = url
+    // 涓氬姟瀹氬埗锛氶�忎紶 responseType锛堥儴鍒� get 涓嬭浇鎺ュ彛闇�瑕侊級
+    config.headers['responseType'] = config.headers['responseType'] ? config.headers['responseType'] : ''
   }
   if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
     const requestObj = {
@@ -44,7 +48,8 @@
       data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
       time: new Date().getTime()
     }
-    const requestSize = Object.keys(JSON.stringify(requestObj)).length // 璇锋眰鏁版嵁澶у皬
+    // 璇锋眰鏁版嵁澶у皬锛堟寜 UTF-8 瀛楄妭鏁拌绠楋紝涓枃鍦烘櫙涓嬫瘮 String.length 鍑嗙‘锛�
+    const requestSize = new TextEncoder().encode(JSON.stringify(requestObj)).byteLength
     const limitSize = 5 * 1024 * 1024 // 闄愬埗瀛樻斁鏁版嵁5M
     if (requestSize >= limitSize) {
       console.warn(`[${config.url}]: ` + '璇锋眰鏁版嵁澶у皬瓒呭嚭鍏佽鐨�5M闄愬埗锛屾棤娉曡繘琛岄槻閲嶅鎻愪氦楠岃瘉銆�')
@@ -57,7 +62,8 @@
       const s_url = sessionObj.url                // 璇锋眰鍦板潃
       const s_data = sessionObj.data              // 璇锋眰鏁版嵁
       const s_time = sessionObj.time              // 璇锋眰鏃堕棿
-      if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
+      if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url
+        && !repeatSubmitWhitelist.includes(s_url)) {
         const message = '鏁版嵁姝e湪澶勭悊锛岃鍕块噸澶嶆彁浜�'
         console.warn(`[${s_url}]: ` + message)
         return Promise.reject(new Error(message))

--
Gitblit v1.9.3