From bfcd3b3b2228f8e5608be88e9a762b5a6bad07e8 Mon Sep 17 00:00:00 2001
From: Jacob <hlnie@tohours.com>
Date: 星期二, 20 十月 2026 12:47:58 +0800
Subject: [PATCH] fix: 专区倒计时改为数字拆分渲染并增加 token 防止多条定时器并发导致跳动
---
utils/request.js | 88 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 86 insertions(+), 2 deletions(-)
diff --git a/utils/request.js b/utils/request.js
index 3fd5c29..7414c34 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -10,6 +10,49 @@
} from '../libs/login';
import store from '../store';
+// ========== 鎺ュ彛璇锋眰鏃ュ織寮�鍏充笌宸ュ叿 ==========
+// 鏄惁鍚敤鎺ュ彛璇︾粏鏃ュ織锛坱rue 寮�鍚紝false 鍏抽棴锛涗笂绾垮墠鍙疆涓� false锛�
+const ENABLE_REQUEST_LOG = true;
+
+/**
+ * 缁熶竴鎵撳嵃鎺ュ彛璇锋眰鏃ュ織锛堣姹傜粨鏉熷悗璋冪敤锛�
+ * 鍖呭惈锛氳姹傚湴鍧�銆佽姹傛柟娉曘�佽姹傚弬鏁般�佸搷搴旂姸鎬併�佸搷搴旀姤鏂囥�佽�楁椂
+ */
+function printRequestLog({
+ url,
+ method,
+ data,
+ status,
+ response,
+ isError,
+ startTime,
+ errMsg
+}) {
+ if (!ENABLE_REQUEST_LOG) return;
+
+ const baseUrl = HTTP_REQUEST_URL || 'http://api.front.hdq.xbdzz.cn';
+ const fullUrl = baseUrl + '/api/front/' + url;
+ const costTime = startTime ? (Date.now() - startTime) + 'ms' : 'N/A';
+ const tag = isError ? '鉁� 鎺ュ彛璇锋眰澶辫触' : '鉁� 鎺ュ彛璇锋眰瀹屾垚';
+ const time = new Date().toLocaleString();
+
+ console.log('\n鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁');
+ console.log('鈹� ' + tag + ' [' + time + ']');
+ console.log('鈹b攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敨');
+ console.log('鈹� 璇锋眰鍦板潃: ' + fullUrl);
+ console.log('鈹� 璇锋眰鏂规硶: ' + ((method || 'GET').toUpperCase()));
+ console.log('鈹� 璇锋眰鍙傛暟:');
+ console.log(data || {});
+ console.log('鈹� 鍝嶅簲鐘舵��: ' + (status !== undefined ? status : (isError ? '璇锋眰澶辫触' : 'N/A')));
+ console.log('鈹� 鍝嶅簲鎶ユ枃:');
+ console.log(response);
+ if (isError && errMsg) {
+ console.log('鈹� 閿欒淇℃伅: ' + errMsg);
+ }
+ console.log('鈹� 璇锋眰鑰楁椂: ' + costTime);
+ console.log('鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍\n');
+}
+
function filterData(data) {
if (!data) return {}
if (Array.isArray(data)) return data
@@ -35,7 +78,6 @@
if (params != undefined) {
header = HEADERPARAMS;
}
- console.log(123123123123123123, url)
if (!noAuth) {
//鐧诲綍杩囨湡鑷姩鐧诲綍
if (!store.state.app.token && !checkLogin()) {
@@ -55,23 +97,45 @@
return new Promise((resolve, reject) => {
Url = HTTP_REQUEST_URL || 'http://api.front.hdq.xbdzz.cn';
let app = getApp();
+ const startTime = Date.now();
+ const reqData = filterData(data);
uni.request({
url: Url + '/api/front/' + url,
method: method || 'GET',
header: header,
- data: filterData(data),
+ data: reqData,
success: (res) => {
// if(url.indexOf('pre/order')>=0){
// res.data.code=601;
// }
+ // 鎴愬姛 / 闈炶嚧鍛藉垎鏀細缁熶竴鎵撳嵃涓�浠芥棩蹇楋紙gio/log 涓� noVerify 璧扮櫧鍚嶅崟锛屼笉鎵撴棩蹇楋級
if (url.indexOf('gio/log') >= 0) {
resolve(res.data, res);
} else if (noVerify) {
resolve(res.data, res);
} else if (res.data.code == 200) {
+ printRequestLog({
+ url,
+ method,
+ data: reqData,
+ status: res.statusCode,
+ response: res.data,
+ isError: false,
+ startTime
+ });
resolve(res.data, res);
} else if ([410000, 410001, 410002, 401].indexOf(res.data.code) !== -1) {
//鎺ュ彛杩斿洖闇�瑕佺櫥褰�
+ printRequestLog({
+ url,
+ method,
+ data: reqData,
+ status: res.statusCode,
+ response: res.data,
+ isError: true,
+ startTime,
+ errMsg: '闇�瑕佺櫥褰� code=' + res.data.code
+ });
console.log('闇�瑕佺櫥褰� url ' + url, res.data)
uni.$emit('needLogin');
uni.showToast({
@@ -79,6 +143,16 @@
});
reject(res.data);
} else {
+ printRequestLog({
+ url,
+ method,
+ data: reqData,
+ status: res.statusCode,
+ response: res.data,
+ isError: true,
+ startTime,
+ errMsg: res.data.message || '绯荤粺閿欒'
+ });
if (app) {
uni.$emit("showTips", {
'title': res.data.message || '绯荤粺閿欒',
@@ -95,6 +169,16 @@
}
},
fail: (msg) => {
+ printRequestLog({
+ url,
+ method,
+ data: reqData,
+ status: undefined,
+ response: msg,
+ isError: true,
+ startTime,
+ errMsg: '缃戠粶璇锋眰澶辫触'
+ });
console.log(url, msg);
if (app) {
uni.$emit("showTips", {
--
Gitblit v1.4.0