From 4060a1c6e9c4a7edf7229b875362f69dddcef7ea Mon Sep 17 00:00:00 2001 From: zyh Date: Wed, 27 Aug 2025 19:06:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Play.vue=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=B7=B2=E5=AE=8C=E6=88=90=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA=E5=92=8C=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=8F=90=E7=A4=BA=EF=BC=8C=E6=8F=90=E5=8D=87=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=93=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Play.vue | 100 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 5 deletions(-) diff --git a/src/views/Play.vue b/src/views/Play.vue index a2babe7..6157b1d 100644 --- a/src/views/Play.vue +++ b/src/views/Play.vue @@ -83,7 +83,7 @@ -
+
代练大区
@@ -93,14 +93,14 @@
QQ
微信
-
状态
+
{{ getDisplayStatus() }}
{{ state.totalPoints || 0 }}
-
- 正在代练中,期间请勿操号,耐心等待代练完成...... +
+ {{ getStatusMessage() }}
@@ -323,6 +323,45 @@ export default { } } + // 处理已完成状态 + const handleCompletedStatus = async () => { + try { + const gameResponse = await getGameInterfaceAPI(state.code) + const gameData = gameResponse.data + + console.log('已完成状态 - 游戏界面数据:', gameData) + + // 更新状态为已完成 + state.status = 'COMPLETED' + + // 构建assets对象,包含图片URL + state.assets = { + homepageUrl: gameData.homepageUrl, + firstRewardUrl: gameData.firstRewardUrl, + midRewardUrl: gameData.midRewardUrl, + endRewardUrl: gameData.endRewardUrl, + qrCodeUrl: gameData.qrCodeUrl + } + + // 设置点数信息 - 已完成时当前点数等于目标点数 + state.totalPoints = gameData.totalPoints || 50 + state.currentPoints = state.totalPoints // 已完成,当前点数等于目标点数 + + console.log('已完成状态更新完成:', { + status: state.status, + totalPoints: state.totalPoints, + currentPoints: state.currentPoints, + assets: !!state.assets + }) + + } catch (error) { + console.error('获取已完成状态游戏数据失败:', error) + // 即使获取游戏数据失败,也要设置为已完成状态 + state.status = 'COMPLETED' + ElMessage.error('获取游戏数据失败,但订单已完成') + } + } + // 更新状态 const updateStateFromResponse = async (data, skipQrProcessing = false) => { // 如果状态是LOGGED_IN,调用游戏接口获取详细数据 @@ -331,6 +370,12 @@ export default { return } + // 如果状态是COMPLETED,也调用游戏接口获取最终数据 + if (data.status === 'COMPLETED') { + await handleCompletedStatus() + return + } + state.status = data.status state.needRefresh = data.needRefresh || false state.region = data.region @@ -515,9 +560,13 @@ export default { console.log('poll-login 响应数据:', data) - // 处理登录成功的情况(无论success是true还是false) + // 处理登录成功和已完成的情况 if (data.status === 'LOGGED_IN') { await handleLoggedInStatus() + } else if (data.status === 'COMPLETED') { + await handleCompletedStatus() + // 已完成时停止轮询 + clearTimer('loginPoll') } } catch (error) { @@ -633,6 +682,37 @@ export default { } } + // 获取显示的状态文字 + const getDisplayStatus = () => { + if (state.status === 'COMPLETED') { + return '已完成' + } else if (state.status === 'LOGGED_IN') { + return '代练中' + } else { + return '状态' + } + } + + // 获取状态提示消息 + const getStatusMessage = () => { + if (state.status === 'COMPLETED') { + return '代练已完成!感谢您的使用,订单已结束。' + } else if (state.status === 'LOGGED_IN') { + return '正在代练中,期间请勿操号,耐心等待代练完成......' + } else { + return '正在代练中,期间请勿操号,耐心等待代练完成......' + } + } + + // 获取状态消息的样式类 + const getStatusMessageClass = () => { + if (state.status === 'COMPLETED') { + return 'status-message-completed' + } else { + return '' + } + } + const getProgressPercent = () => { if (!state.totalPoints) return 0 return Math.min(100, (state.currentPoints / state.totalPoints) * 100) @@ -690,6 +770,9 @@ export default { getCurrentUrl, getGameStatus, getStatusClass, + getDisplayStatus, + getStatusMessage, + getStatusMessageClass, getProgressPercent, getCurrentGameImage, getErrorTitle, @@ -1046,6 +1129,13 @@ export default { border-left: 4px solid #f44336; } +/* 已完成状态的消息样式 */ +.status-message-completed { + background: #d4edda !important; + color: #155724 !important; + border-left: 4px solid #28a745 !important; +} + /* 功能按钮网格 */ .function-grid { display: grid;