完善我的成长

This commit is contained in:
kron
2026-02-10 11:47:09 +08:00
parent 303e1830d3
commit 812879d252
3 changed files with 26 additions and 49 deletions

View File

@@ -354,39 +354,12 @@ export const simulShootAPI = (device_id, x, y) => {
}; };
export const getBattleListAPI = async (page, battleType) => { export const getBattleListAPI = async (page, battleType) => {
const data = [];
const result = await request("POST", "/user/battle/details/list", { const result = await request("POST", "/user/battle/details/list", {
page, page,
pageSize: 10,
battleType, battleType,
modeType: 0,
}); });
(result.Battles || []).forEach((item) => { return result.list;
let name = "";
if (item.battleStats.mode === 1) {
name = `${item.playerStats.length / 2}V${item.playerStats.length / 2}`;
}
if (item.battleStats.mode === 2) {
name = `${item.playerStats.length}人大乱斗`;
}
data.push({
name,
battleId: item.battleStats.battleId,
mode: item.battleStats.mode,
createdAt: item.battleStats.createdAt,
gameEndAt: item.battleStats.gameEndAt,
winner: item.battleStats.winner,
players: item.playerStats
.map((p) => p.playerBattleStats)
.sort((a, b) => b.totalScore - a.totalScore),
redPlayers: item.playerStats
.filter((p) => p.playerBattleStats.team === 0)
.map((p) => p.playerBattleStats),
bluePlayers: item.playerStats
.filter((p) => p.playerBattleStats.team === 1)
.map((p) => p.playerBattleStats),
});
});
return data;
}; };
export const getRankListAPI = () => { export const getRankListAPI = () => {

View File

@@ -16,8 +16,8 @@ const total = ref(0);
onLoad(async (options) => { onLoad(async (options) => {
if (options.id) { if (options.id) {
const result = await getPractiseAPI(options.id); const result = await getPractiseAPI(options.id);
arrows.value = result.arrows; arrows.value = result.details;
total.value = result.completed_arrows; total.value = result.details.length;
} }
}); });
</script> </script>

View File

@@ -17,7 +17,7 @@ const practiseList = ref([]);
const toMatchDetail = (id) => { const toMatchDetail = (id) => {
uni.navigateTo({ uni.navigateTo({
url: `/pages/match-detail?id=${id}`, url: `/pages/match-detail?battleId=${id}`,
}); });
}; };
const getPractiseDetail = async (id) => { const getPractiseDetail = async (id) => {
@@ -52,6 +52,10 @@ const onPractiseLoading = async (page) => {
} }
return result.length; return result.length;
}; };
const getName = (battle) => {
if (battle.mode <= 3) return `${battle.mode}V${battle.mode}`;
return battle.mode + "人大乱斗";
};
</script> </script>
<template> <template>
@@ -80,19 +84,19 @@ const onPractiseLoading = async (page) => {
<view <view
v-for="(item, index) in matchList" v-for="(item, index) in matchList"
:key="index" :key="index"
@click="() => toMatchDetail(item.battleId)" @click="() => toMatchDetail(item.id)"
> >
<view class="contest-header"> <view class="contest-header">
<text>{{ item.name }}</text> <text>{{ getName(item) }}</text>
<text>{{ item.createdAt }}</text> <text>{{ item.createTime }}</text>
<image src="../static/back.png" mode="widthFix" /> <image src="../static/back.png" mode="widthFix" />
</view> </view>
<BattleHeader <BattleHeader
:players="item.mode === 1 ? [] : item.players" :players="item.teams[0] ? item.teams[0].players : []"
:blueTeam="item.bluePlayers" :blueTeam="item.teams[2] ? item.teams[2].players : []"
:redTeam="item.redPlayers" :redTeam="item.teams[1] ? item.teams[1].players : []"
:winner="item.winner" :winner="item.winTeam"
:showRank="item.mode === 2" :showRank="item.teams[0]"
:showHeader="false" :showHeader="false"
/> />
</view> </view>
@@ -103,19 +107,19 @@ const onPractiseLoading = async (page) => {
<view <view
v-for="(item, index) in battleList" v-for="(item, index) in battleList"
:key="index" :key="index"
@click="() => toMatchDetail(item.battleId)" @click="() => toMatchDetail(item.id)"
> >
<view class="contest-header"> <view class="contest-header">
<text>{{ item.name }}</text> <text>{{ getName(item) }}</text>
<text>{{ item.createdAt }}</text> <text>{{ item.createTime }}</text>
<image src="../static/back.png" mode="widthFix" /> <image src="../static/back.png" mode="widthFix" />
</view> </view>
<BattleHeader <BattleHeader
:players="item.mode === 1 ? [] : item.players" :players="item.teams[0] ? item.teams[0].players : []"
:blueTeam="item.bluePlayers" :blueTeam="item.teams[2] ? item.teams[2].players : []"
:redTeam="item.redPlayers" :redTeam="item.teams[1] ? item.teams[1].players : []"
:winner="item.winner" :winner="item.winTeam"
:showRank="item.mode === 2" :showRank="item.teams[0]"
:showHeader="false" :showHeader="false"
/> />
</view> </view>
@@ -131,7 +135,7 @@ const onPractiseLoading = async (page) => {
> >
<text <text
>{{ item.completed_arrows === 36 ? "耐力挑战" : "单组练习" }} >{{ item.completed_arrows === 36 ? "耐力挑战" : "单组练习" }}
{{ item.createdAt }}</text {{ item.createTime }}</text
> >
<image src="../static/back.png" mode="widthFix" /> <image src="../static/back.png" mode="widthFix" />
</view> </view>