feat(game): 添加玩家头像显示功能

- 在环境配置中更新代理目标地址
- 扩展游戏动作类型定义以支持头像URL字段
- 添加头像URL缓存计算逻辑以从多种来源获取头像
- 修改座位玩家卡片数据模型将avatar替换为avatarUrl
- 实现头像图片加载并添加默认头像回退机制
- 更新CSS样式以正确显示头像图片
- 重构游戏状态管理中的玩家头像数据处理
- 优化游戏页面中的头像分配逻辑
This commit is contained in:
2026-03-25 21:07:49 +08:00
parent 66834d8a7a
commit 6168117eb2
7 changed files with 77 additions and 22 deletions

View File

@@ -3,6 +3,7 @@ import { computed } from 'vue'
import wanIcon from '../../assets/images/flowerClolor/wan.png'
import tongIcon from '../../assets/images/flowerClolor/tong.png'
import tiaoIcon from '../../assets/images/flowerClolor/tiao.png'
import defaultAvatarIcon from '../../assets/images/icons/avatar.svg'
import type { SeatPlayerCardModel } from './seat-player-card'
const props = defineProps<{
@@ -22,6 +23,10 @@ const missingSuitIcon = computed(() => {
}
return ''
})
const resolvedAvatarUrl = computed(() => {
return props.player.avatarUrl || defaultAvatarIcon
})
</script>
<template>
@@ -30,7 +35,9 @@ const missingSuitIcon = computed(() => {
:class="[seatClass, { 'is-turn': player.isTurn }]"
>
<div class="avatar-panel">
<div class="avatar-card">{{ player.avatar }}</div>
<div class="avatar-card">
<img :src="resolvedAvatarUrl" :alt="`${player.name}头像`" />
</div>
<span v-if="player.dealer" class="dealer-mark"></span>
</div>
@@ -43,4 +50,4 @@ const missingSuitIcon = computed(() => {
<span v-else>{{ player.missingSuitLabel }}</span>
</div>
</article>
</template>
</template>