BUG修复
This commit is contained in:
72
src/apis.js
72
src/apis.js
@@ -270,78 +270,6 @@ export const readyGameAPI = (battleId) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getGameAPI = async (battleId) => {
|
|
||||||
const result = await request("POST", "/user/battle/detail", {
|
|
||||||
id: battleId,
|
|
||||||
});
|
|
||||||
if (!result.battleStats) return {};
|
|
||||||
const {
|
|
||||||
battleStats = {},
|
|
||||||
playerStats = {},
|
|
||||||
goldenRoundRecords = [],
|
|
||||||
} = result;
|
|
||||||
const data = {
|
|
||||||
id: battleId,
|
|
||||||
mode: battleStats.mode, // 1.几V几 2.大乱斗
|
|
||||||
gameMode: battleStats.gameMode, // 1.约战 2.排位
|
|
||||||
teamSize: battleStats.teamSize,
|
|
||||||
};
|
|
||||||
if (battleStats && battleStats.mode === 1) {
|
|
||||||
data.winner = battleStats.winner;
|
|
||||||
data.roundsData = {};
|
|
||||||
data.redPlayers = {};
|
|
||||||
data.bluePlayers = {};
|
|
||||||
data.mvps = [];
|
|
||||||
data.goldenRounds =
|
|
||||||
goldenRoundRecords && goldenRoundRecords.length ? goldenRoundRecords : [];
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
if (playerBattleStats.mvp) {
|
|
||||||
data.mvps.push(playerBattleStats);
|
|
||||||
}
|
|
||||||
roundRecords.forEach((round) => {
|
|
||||||
data.roundsData[round.roundNumber] = {
|
|
||||||
...data.roundsData[round.roundNumber],
|
|
||||||
[round.playerId]: round.arrowHistory,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
const totalRounds = Object.keys(data.roundsData).length;
|
|
||||||
(goldenRoundRecords || []).forEach((item, index) => {
|
|
||||||
item.arrowHistory.forEach((arrow) => {
|
|
||||||
if (!data.roundsData[totalRounds + index + 1]) {
|
|
||||||
data.roundsData[totalRounds + index + 1] = {};
|
|
||||||
}
|
|
||||||
if (!data.roundsData[totalRounds + index + 1][arrow.playerId]) {
|
|
||||||
data.roundsData[totalRounds + index + 1][arrow.playerId] = [];
|
|
||||||
}
|
|
||||||
data.roundsData[totalRounds + index + 1][arrow.playerId].push(arrow);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
data.mvps.sort((a, b) => b.totalRings - a.totalRings);
|
|
||||||
}
|
|
||||||
if (battleStats && battleStats.mode === 2) {
|
|
||||||
data.players = [];
|
|
||||||
playerStats.forEach((item) => {
|
|
||||||
data.players.push({
|
|
||||||
...item.playerBattleStats,
|
|
||||||
arrowHistory: item.roundRecords[0].arrowHistory,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
data.players = data.players.sort((a, b) => b.totalScore - a.totalScore);
|
|
||||||
}
|
|
||||||
// console.log("game result:", result);
|
|
||||||
// console.log("format data:", data);
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const simulShootAPI = (device_id, x, y) => {
|
export const simulShootAPI = (device_id, x, y) => {
|
||||||
const data = {
|
const data = {
|
||||||
device_id,
|
device_id,
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ const getName = (battle) => {
|
|||||||
</view>
|
</view>
|
||||||
<BattleHeader
|
<BattleHeader
|
||||||
:players="item.teams[0] ? item.teams[0].players : []"
|
:players="item.teams[0] ? item.teams[0].players : []"
|
||||||
:blueTeam="item.teams[2] ? item.teams[2].players : []"
|
:blueTeam="item.teams[1] ? item.teams[1].players : []"
|
||||||
:redTeam="item.teams[1] ? item.teams[1].players : []"
|
:redTeam="item.teams[2] ? item.teams[2].players : []"
|
||||||
:winner="item.winTeam"
|
:winner="item.winTeam"
|
||||||
:showRank="item.teams[0]"
|
:showRank="item.teams[0]"
|
||||||
:showHeader="false"
|
:showHeader="false"
|
||||||
@@ -116,8 +116,8 @@ const getName = (battle) => {
|
|||||||
</view>
|
</view>
|
||||||
<BattleHeader
|
<BattleHeader
|
||||||
:players="item.teams[0] ? item.teams[0].players : []"
|
:players="item.teams[0] ? item.teams[0].players : []"
|
||||||
:blueTeam="item.teams[2] ? item.teams[2].players : []"
|
:blueTeam="item.teams[1] ? item.teams[1].players : []"
|
||||||
:redTeam="item.teams[1] ? item.teams[1].players : []"
|
:redTeam="item.teams[2] ? item.teams[2].players : []"
|
||||||
:winner="item.winTeam"
|
:winner="item.winTeam"
|
||||||
:showRank="item.teams[0]"
|
:showRank="item.teams[0]"
|
||||||
:showHeader="false"
|
:showHeader="false"
|
||||||
|
|||||||
23
src/util.js
23
src/util.js
@@ -1,5 +1,3 @@
|
|||||||
import { getUserGameState, getGameAPI } from "@/apis";
|
|
||||||
|
|
||||||
export const formatTimestamp = (timestamp) => {
|
export const formatTimestamp = (timestamp) => {
|
||||||
const date = new Date(timestamp * 1000);
|
const date = new Date(timestamp * 1000);
|
||||||
const year = date.getFullYear();
|
const year = date.getFullYear();
|
||||||
@@ -89,27 +87,6 @@ export const wxShare = async (canvasId = "shareCanvas") => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// export const isGameEnded = async (battleId) => {
|
|
||||||
// const state = await getUserGameState();
|
|
||||||
// if (!state.gaming) {
|
|
||||||
// const result = await getGameAPI(battleId);
|
|
||||||
// if (result.mode) {
|
|
||||||
// uni.redirectTo({
|
|
||||||
// url: `/pages/battle-result?battleId=${battleId}`,
|
|
||||||
// });
|
|
||||||
// } else {
|
|
||||||
// uni.showToast({
|
|
||||||
// title: "比赛已结束",
|
|
||||||
// icon: "none",
|
|
||||||
// });
|
|
||||||
// setTimeout(() => {
|
|
||||||
// uni.navigateBack();
|
|
||||||
// }, 1000);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return !state.gaming;
|
|
||||||
// };
|
|
||||||
|
|
||||||
// 获取元素尺寸和位置信息
|
// 获取元素尺寸和位置信息
|
||||||
export const getElementRect = (classname) => {
|
export const getElementRect = (classname) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user