From 955abbb115841db701702c09b3241e190a46d4bd Mon Sep 17 00:00:00 2001 From: kron Date: Mon, 28 Jul 2025 15:05:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis.js | 59 ++++++++++++++++++++++++++++++--- src/components/PlayerScore.vue | 2 +- src/pages/be-vip.vue | 15 +++++++-- src/pages/rank-list.vue | 2 +- src/pages/ranking.vue | 30 +++++++++++++++-- src/static/bubble-tip5.png | Bin 0 -> 715 bytes src/util.js | 2 +- 7 files changed, 98 insertions(+), 12 deletions(-) create mode 100644 src/static/bubble-tip5.png diff --git a/src/apis.js b/src/apis.js index 6a9babd..a0aa942 100644 --- a/src/apis.js +++ b/src/apis.js @@ -10,6 +10,7 @@ function request(method, url, data = {}) { method, header, data, + timeout: 10000, success: (res) => { if (res.data) { const { code, data, message } = res.data; @@ -55,16 +56,66 @@ function request(method, url, data = {}) { } }, fail: (err) => { + handleRequestError(err, url); reject(err); - uni.showToast({ - title: "接口调用失败", - icon: "none", - }); }, }); }); } +// 统一的错误处理函数 +function handleRequestError(err, url) { + console.log('请求失败:', { err, url }); + + // 根据错误类型显示不同提示 + if (err.errMsg) { + if (err.errMsg.includes('timeout')) { + showCustomToast("请求超时,请稍后重试", "timeout"); + } else if (err.errMsg.includes('fail')) { + // 检查网络状态 + uni.getNetworkType({ + success: (res) => { + if (res.networkType === 'none') { + showCustomToast("网络连接已断开,请检查网络设置", "network"); + } else { + showCustomToast("服务器连接失败,请稍后重试", "server"); + } + }, + fail: () => { + showCustomToast("网络异常,请检查网络连接", "unknown"); + } + }); + } else { + showCustomToast("请求失败,请稍后重试", "general"); + } + } else { + showCustomToast("网络异常,请稍后重试", "unknown"); + } +} + +// 自定义提示函数 +function showCustomToast(message, type) { + const config = { + title: message, + icon: "none", + duration: 3000 + }; + + // 根据错误类型可以添加不同的处理逻辑 + switch (type) { + case 'timeout': + config.duration = 4000; // 超时提示显示更久 + break; + case 'network': + config.duration = 5000; // 网络问题提示显示更久 + break; + default: + break; + } + + uni.showToast(config); +} + // 获取全局配置 export const getAppConfig = () => { return request("GET", "/index/appConfig"); diff --git a/src/components/PlayerScore.vue b/src/components/PlayerScore.vue index 3635a8a..a468225 100644 --- a/src/components/PlayerScore.vue +++ b/src/components/PlayerScore.vue @@ -72,7 +72,7 @@ const rowCount = new Array(6).fill(0); width: 30px; height: 30px; min-height: 30px; - border: 1px solid #fff3; + border: 1px solid #fff; border-radius: 50%; margin-right: 10px; margin-left: -30px; diff --git a/src/pages/be-vip.vue b/src/pages/be-vip.vue index 527b5d1..2ac804e 100644 --- a/src/pages/be-vip.vue +++ b/src/pages/be-vip.vue @@ -79,6 +79,11 @@ onUnmounted(() => { {{ user.nickName }} + { - 成为射灵会员 + 会员续费 { display: flex; align-items: center; } -.header > view > text:last-child { +.header > view > text { margin-left: 10px; - width: 120px; + max-width: 120px; text-align: left; } +.header > view > image { + margin-left: 5px; + width: 20px; +} .header > text:nth-child(2) { color: #fed847; } diff --git a/src/pages/rank-list.vue b/src/pages/rank-list.vue index 7ff53c9..3db90cf 100644 --- a/src/pages/rank-list.vue +++ b/src/pages/rank-list.vue @@ -157,7 +157,7 @@ const subTitles = ["排位赛积分", "本周MVP次数", "本周十环次数"]; {{ user.nickName }} - {{ user.lvlName }},{{ rankData.TotalGames }}场 + {{ user.lvlName }},{{ myData.TotalGames }}场 { : "-" }} + + + 积分:{{ rankData.user.scores }} + { align-items: center; justify-content: space-around; color: #b3b3b3; - width: 100%; + width: 110%; margin-top: 15px; + position: relative; + transform: translateX(-5%); } .my-data > view { display: flex; flex-direction: column; align-items: center; justify-content: space-around; + width: 32%; height: 60px; + position: relative; } .my-data > view:nth-child(2) { border-left: 1px solid #48494e; border-right: 1px solid #48494e; - padding: 0 20px; + padding: 0 15px; } .my-data > view > text:first-child { font-size: 14px; @@ -544,4 +552,22 @@ onShow(async () => { height: 12px; margin-left: 10px; } +.my-rank-score { + position: absolute !important; + color: #fff; + width: 80px !important; + display: flex; + justify-content: center; + top: -34px; + left: 27px; +} +.my-rank-score > image { + position: absolute; + width: 100%; +} +.my-rank-score > text { + position: relative; + font-size: 10px !important; + margin-bottom: 7px; +} diff --git a/src/static/bubble-tip5.png b/src/static/bubble-tip5.png new file mode 100644 index 0000000000000000000000000000000000000000..c0aac79951d2e04bb0fb60daad3ca7d83a88d638 GIT binary patch literal 715 zcmV;+0yO=JP)Px%g-Jv~R9Hvtn88aFVHn1L@3%}51mPj;5_ISf=pa@^)G309yhw+NZWbaU3xT54 zmaFW>x|@pk@De29rAr`GbTBBQFhLel#6w=P*hQq(nYTvWb=n;%X3N;!<}~xo_q^Xc z56?UA`+Y*ur6VIpFy=C<$ASGosCZ75KPw_x-~+1T(%L#v%vbUQIyAH!V+IhpfvUey zQkV{^rP{gg{l@b%D-kd93fsOS?d=~6G~63aCih@jPk~ca?xJAyL_Py&rLFC)8(`f! zIyg8ATn!enMo=OPtgRiDaCk{Hl{$$rFHzmdy?lCYmulV=^V6%E@ggbd=m?7@lMjGv zHR6|YX?|g5=78wHz#OWF%Z*k;_y*BLB8RHAZPoLpX+AZ*71D3at6;U^jkzcqkGnm| z-WqaBc~n)KL}Rhns5X=rsix44qW%51epJpoCA5pHr(c>CI^*AHbgKiu#Qgk0(MY5o z%SxlVucrJGjO<AAhp+(x69P<>eF)q(}AcGMJ^%n3;(mbdnvy}j3QoMFH!Vef5N zy)U;LFAh-Ycz91PcR~9477E*_!mlY3X#`@xng6bHH<|Kj-ALK&eMzNOe%i2?7^A!U z5SDce+pY%;p#Y~tw!IbhPvafu9IEF7{0~+UnL}h2Ro69(fV&z0isLL}%nHV=V%y(P zT_hS!yXQ8=>v+z30(`731ehR`c_G8YnQ{g4!&jzgot^i9o128D5qX5;JeGKT`frF-@#(28Ef#fklfW}z xRO0ceoe;{qM#VWzo11q5wv3H=D$UNy_8l(eFBUZO;C=uA002ovPDHLkV1jnSQ_KJW literal 0 HcmV?d00001 diff --git a/src/util.js b/src/util.js index 54ff564..937711e 100644 --- a/src/util.js +++ b/src/util.js @@ -7,7 +7,7 @@ export const formatTimestamp = (timestamp) => { const month = date.getMonth() + 1; const day = date.getDate(); - return `${year}年${month}月${day}号`; + return `${year}-${month}-${day}`; }; export const checkConnection = () => {