From 80e0b07c0e04fc8ba6d6ed6187bb7919aded6598 Mon Sep 17 00:00:00 2001 From: kron Date: Sun, 8 Jun 2025 20:59:41 +0800 Subject: [PATCH] =?UTF-8?q?1v1=E6=8E=92=E4=BD=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis.js | 31 +++++++++++- src/components/BattleFooter.vue | 44 ++++++++++++++--- src/components/BattleHeader.vue | 32 ++++++------ src/components/BowTarget.vue | 13 +++-- src/components/PlayersRow.vue | 2 +- src/components/TeamResult.vue | 86 ++++++++++++++++++++++++--------- src/constants.js | 1 + src/pages/battle-result.vue | 44 ++++++++++++----- src/pages/ranking.vue | 30 ++++-------- src/pages/team-match.vue | 33 +++++++++++-- 10 files changed, 232 insertions(+), 84 deletions(-) diff --git a/src/apis.js b/src/apis.js index 11fce7b..8780cae 100644 --- a/src/apis.js +++ b/src/apis.js @@ -120,10 +120,37 @@ export const readyGameAPI = (battleId) => { }); }; -export const getGameAPI = (battleId) => { - return request("POST", "/user/battle/detail", { +export const getGameAPI = async (battleId) => { + const result = await request("POST", "/user/battle/detail", { id: battleId, }); + const { battleStats = {}, playerStats = {} } = result; + const data = { + winner: battleStats.winner, + redTotal: battleStats.redTotal, + blueTotal: battleStats.blueTotal, + roundsData: {}, + redPlayers: {}, + bluePlayers: {}, + }; + playerStats.forEach((item) => { + const { playerBattleStats = {}, roundRecords = [] } = item; + if (playerBattleStats.team === 0) { + data.redPlayers[playerBattleStats.playerId] = playerBattleStats; + } + if (playerBattleStats.team === 1) { + data.bluePlayers[playerBattleStats.playerId] = playerBattleStats; + } + roundRecords.forEach((round) => { + data.roundsData[round.roundNumber] = { + ...data.roundsData[round.roundNumber], + [round.playerId]: round.arrowHistory, + }; + }); + }); + console.log("game result:", result); + console.log("format data:", data); + return data; }; export const simulShootAPI = (device_id, x, y) => { diff --git a/src/components/BattleFooter.vue b/src/components/BattleFooter.vue index 0653b47..716437a 100644 --- a/src/components/BattleFooter.vue +++ b/src/components/BattleFooter.vue @@ -4,12 +4,24 @@ defineProps({ type: Array, default: () => [], }, + bluePoints: { + type: Number, + default: 0, + }, + redPoints: { + type: Number, + default: 0, + }, });