数据展示优化

This commit is contained in:
kron
2025-06-18 02:02:09 +08:00
parent 970040c7b4
commit a782e141ab
6 changed files with 48 additions and 18 deletions

View File

@@ -212,9 +212,16 @@ export const getBattleListAPI = async (page, battleType) => {
mode: item.battleStats.mode, mode: item.battleStats.mode,
createdAt: item.battleStats.createdAt, createdAt: item.battleStats.createdAt,
gameEndAt: item.battleStats.gameEndAt, gameEndAt: item.battleStats.gameEndAt,
winner: item.battleStats.winner,
players: item.playerStats players: item.playerStats
.map((p) => p.playerBattleStats) .map((p) => p.playerBattleStats)
.sort((a, b) => b.totalScore - a.totalScore), .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; return data;

View File

@@ -13,6 +13,14 @@ defineProps({
type: Array, type: Array,
default: () => [], default: () => [],
}, },
showRank: {
type: Boolean,
default: false,
},
winner: {
type: Number,
default: 1,
},
}); });
const bgColors = ["#364469", "#692735", "#934B4B", "#A98B69", "#8268A2 "]; const bgColors = ["#364469", "#692735", "#934B4B", "#A98B69", "#8268A2 "];
</script> </script>
@@ -29,7 +37,11 @@ const bgColors = ["#364469", "#692735", "#934B4B", "#A98B69", "#8268A2 "];
:key="index" :key="index"
:style="{ backgroundColor: bgColors[index] }" :style="{ backgroundColor: bgColors[index] }"
> >
<Avatar :src="player.avatar" :size="40" /> <Avatar
:src="player.avatar"
:size="40"
:rank="showRank ? index + 1 : 0"
/>
<text class="player-name">{{ player.name }}</text> <text class="player-name">{{ player.name }}</text>
</view> </view>
</view> </view>
@@ -38,7 +50,7 @@ const bgColors = ["#364469", "#692735", "#934B4B", "#A98B69", "#8268A2 "];
<Avatar :src="blueTeam[0].avatar" frame /> <Avatar :src="blueTeam[0].avatar" frame />
<text class="player-name">{{ blueTeam[0].name }}</text> <text class="player-name">{{ blueTeam[0].name }}</text>
<image <image
v-if="blueTeam[0].winner" v-if="winner === 1"
src="../static/winner-badge.png" src="../static/winner-badge.png"
mode="widthFix" mode="widthFix"
/> />
@@ -47,7 +59,7 @@ const bgColors = ["#364469", "#692735", "#934B4B", "#A98B69", "#8268A2 "];
<Avatar v-if="redTeam[0]" :src="redTeam[0].avatar" frame /> <Avatar v-if="redTeam[0]" :src="redTeam[0].avatar" frame />
<text class="player-name">{{ redTeam[0].name }}</text> <text class="player-name">{{ redTeam[0].name }}</text>
<image <image
v-if="redTeam[0].winner" v-if="winner === 0"
src="../static/winner-badge.png" src="../static/winner-badge.png"
mode="widthFix" mode="widthFix"
/> />

View File

@@ -76,7 +76,7 @@ watch(
class="score-item" class="score-item"
:style="{ width: '13vw', height: '13vw' }" :style="{ width: '13vw', height: '13vw' }"
> >
{{ score.ringScore }} {{ score.ring }}
</view> </view>
</view> </view>
</view> </view>

View File

@@ -115,7 +115,7 @@ watch(
class="score-item" class="score-item"
:style="{ width: '13vw', height: '13vw' }" :style="{ width: '13vw', height: '13vw' }"
> >
{{ score.ringScore }} {{ score.ring }}
</view> </view>
</view> </view>
</view> </view>

View File

@@ -57,9 +57,11 @@ onLoad(async (options) => {
<Container title="详情"> <Container title="详情">
<view class="container"> <view class="container">
<BattleHeader <BattleHeader
:winner="data.winner"
:blueTeam="blueTeam" :blueTeam="blueTeam"
:redTeam="redTeam" :redTeam="redTeam"
:players="players" :players="players"
:showRank="true"
/> />
<!-- <view class="score-header"> <!-- <view class="score-header">
<text>决金箭轮环数</text> <text>决金箭轮环数</text>

View File

@@ -89,19 +89,28 @@ onMounted(async () => {
<image src="../static/back.png" mode="widthFix" /> <image src="../static/back.png" mode="widthFix" />
</view> </view>
<view v-if="item.mode === 1" class="contest-team"> <view v-if="item.mode === 1" class="contest-team">
<view <block v-if="item.bluePlayers[0]">
class="player" <view class="player">
v-for="(p, index2) in item.players" <Avatar frame :src="item.bluePlayers[0].avatar" />
:key="index2" <text>{{ item.bluePlayers[0].name }}</text>
> <image
<Avatar frame :src="p.avatar" /> v-if="item.winner === 1"
<text>{{ p.name }}</text> src="../static/winner-badge.png"
<image mode="widthFix"
v-if="index2 === 0" />
src="../static/winner-badge.png" </view>
mode="widthFix" </block>
/> <block v-if="item.redPlayers[0]">
</view> <view class="player">
<Avatar frame :src="item.redPlayers[0].avatar" />
<text>{{ item.redPlayers[0].name }}</text>
<image
v-if="item.winner === 0"
src="../static/winner-badge.png"
mode="widthFix"
/>
</view>
</block>
</view> </view>
<view v-if="item.mode === 2" class="contest-multi"> <view v-if="item.mode === 2" class="contest-multi">
<view <view