From ae5d8d48c46ad963ab0573475dfd21beabf21014 Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Wed, 25 Mar 2026 21:15:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(game):=20=E6=94=AF=E6=8C=81=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E6=98=BE=E7=A4=BA=E5=90=8D=E7=A7=B0=E7=9A=84=E5=A4=9A?= =?UTF-8?q?=E7=A7=8D=E6=95=B0=E6=8D=AE=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在麻将游戏页面中添加本地缓存头像URL的优先级处理 - 为玩家座位信息添加自定义显示名称功能 - 支持从player_name或PlayerName字段获取玩家名称 - 实现当前用户显示名称的回退逻辑 - 更新API接口定义以支持可选的玩家名称字段 --- src/api/mahjong.ts | 2 ++ src/views/ChengduGamePage.vue | 3 ++- src/views/HallPage.vue | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/api/mahjong.ts b/src/api/mahjong.ts index 901634f..a4c368b 100644 --- a/src/api/mahjong.ts +++ b/src/api/mahjong.ts @@ -10,6 +10,8 @@ export interface RoomItem { players?: Array<{ index: number player_id: string + player_name?: string + PlayerName?: string ready: boolean }> status: string diff --git a/src/views/ChengduGamePage.vue b/src/views/ChengduGamePage.vue index 4a96f8b..38b1459 100644 --- a/src/views/ChengduGamePage.vue +++ b/src/views/ChengduGamePage.vue @@ -257,10 +257,11 @@ const seatDecor = computed>(() => { const avatarUrl = seat.isSelf ? (localCachedAvatarUrl.value || seat.player.avatarURL || '') : (seat.player.avatarURL || '') + const selfDisplayName = seat.player.displayName || loggedInUserName.value || '你自己' result[seat.key] = { avatarUrl, - name: seat.isSelf ? '你自己' : displayName, + name: seat.isSelf ? selfDisplayName : displayName, dealer: seat.player.seatIndex === dealerIndex, isTurn: seat.isTurn, missingSuitLabel: missingSuitLabel(seat.player.missingSuit), diff --git a/src/views/HallPage.vue b/src/views/HallPage.vue index bb519d3..3883251 100644 --- a/src/views/HallPage.vue +++ b/src/views/HallPage.vue @@ -131,6 +131,10 @@ function mapRoomPlayers(room: RoomItem): RoomPlayerState[] { .map((item, fallbackIndex) => ({ index: Number.isFinite(item.index) ? item.index : fallbackIndex, playerId: item.player_id, + displayName: + (typeof item.player_name === 'string' && item.player_name) || + (typeof item.PlayerName === 'string' && item.PlayerName) || + (item.player_id === currentUserId.value ? displayName.value : undefined), ready: Boolean(item.ready), hand: [], melds: [],