chore: 实现支持定制战区冠军及英雄关键Logo的大小

This commit is contained in:
2025-11-13 16:03:56 +08:00
parent 4164ea36ee
commit ab60d253de
3 changed files with 50 additions and 10 deletions

View File

@@ -387,7 +387,9 @@
}, },
"championLogos": { "championLogos": {
"teamChampion": "", "teamChampion": "",
"individualChampion": "" "individualChampion": "",
"teamChampionSize": 120,
"individualChampionSize": 120
} }
}, },
"battleEndTime": { "battleEndTime": {

View File

@@ -386,6 +386,18 @@
清除Logo 清除Logo
</button> </button>
</div> </div>
<div class="size-control">
<label class="text-gold">显示大小</label>
<input
type="number"
v-model.number="championLogos.teamChampionSize"
min="30"
max="200"
class="width-input"
placeholder="输入大小(像素)"
>
<span class="size-unit">px</span>
</div>
<p class="upload-hint">支持JPGPNGGIF格式建议尺寸200x200像素文件大小不超过5MB</p> <p class="upload-hint">支持JPGPNGGIF格式建议尺寸200x200像素文件大小不超过5MB</p>
</div> </div>
</div> </div>
@@ -407,6 +419,18 @@
清除Logo 清除Logo
</button> </button>
</div> </div>
<div class="size-control">
<label class="text-gold">显示大小</label>
<input
type="number"
v-model.number="championLogos.individualChampionSize"
min="30"
max="200"
class="width-input"
placeholder="输入大小(像素)"
>
<span class="size-unit">px</span>
</div>
<p class="upload-hint">支持JPGPNGGIF格式建议尺寸200x200像素文件大小不超过5MB</p> <p class="upload-hint">支持JPGPNGGIF格式建议尺寸200x200像素文件大小不超过5MB</p>
</div> </div>
</div> </div>
@@ -828,7 +852,9 @@ const tabs = [
// 冠军Logo配置 // 冠军Logo配置
const championLogos = ref({ const championLogos = ref({
teamChampion: '', teamChampion: '',
individualChampion: '' individualChampion: '',
teamChampionSize: 60, // 默认60px
individualChampionSize: 60 // 默认60px
}); });
// 组件挂载时初始化冠军Logo配置 // 组件挂载时初始化冠军Logo配置

View File

@@ -55,8 +55,12 @@
<!-- 战区冠军 --> <!-- 战区冠军 -->
<div class="team-champion"> <div class="team-champion">
<div class="team-logo"> <div class="team-logo">
<img v-if="localDisplayConfig.championLogos?.teamChampion" :src="localDisplayConfig.championLogos.teamChampion" alt="战区冠军" class="champion-logo"> <img v-if="localDisplayConfig.championLogos?.teamChampion"
<span v-else>🏅</span> :src="localDisplayConfig.championLogos.teamChampion"
alt="战区冠军"
class="champion-logo"
:style="{ width: localDisplayConfig.championLogos?.teamChampionSize + 'px', height: localDisplayConfig.championLogos?.teamChampionSize + 'px' }">
<span v-else :style="{ fontSize: localDisplayConfig.championLogos?.teamChampionSize ? (localDisplayConfig.championLogos.teamChampionSize * 0.8) + 'px' : '2rem' }">🏅</span>
</div> </div>
<div class="champion-name"> <div class="champion-name">
{{ teamRankings[0]?.name || '暂无冠军' }} {{ teamRankings[0]?.name || '暂无冠军' }}
@@ -99,9 +103,19 @@
<!-- 英雄冠军 --> <!-- 英雄冠军 -->
<div class="individual-champion"> <div class="individual-champion">
<div class="individual-avatar"> <div class="individual-avatar">
<img v-if="individualRankings[0]?.avatar && individualRankings[0].avatar.startsWith('/')" :src="individualRankings[0].avatar" alt="冠军头像" class="avatar-image avatar-image-champion"> <img v-if="individualRankings[0]?.avatar && individualRankings[0].avatar.startsWith('/')"
<img v-else-if="localDisplayConfig.championLogos?.individualChampion" :src="localDisplayConfig.championLogos.individualChampion" alt="英雄冠军" class="champion-logo"> :src="individualRankings[0].avatar"
<span v-else>{{ individualRankings[0]?.avatar || '👤' }}</span> alt="冠军头像"
class="avatar-image avatar-image-champion"
:style="{ width: localDisplayConfig.championLogos?.individualChampionSize + 'px', height: localDisplayConfig.championLogos?.individualChampionSize + 'px' }">
<img v-else-if="localDisplayConfig.championLogos?.individualChampion"
:src="localDisplayConfig.championLogos.individualChampion"
alt="英雄冠军"
class="champion-logo"
:style="{ width: localDisplayConfig.championLogos?.individualChampionSize + 'px', height: localDisplayConfig.championLogos?.individualChampionSize + 'px' }">
<span v-else :style="{ fontSize: localDisplayConfig.championLogos?.individualChampionSize ? (localDisplayConfig.championLogos.individualChampionSize * 0.8) + 'px' : '2rem' }">
{{ individualRankings[0]?.avatar || '👤' }}
</span>
</div> </div>
<div class="champion-name"> <div class="champion-name">
{{ individualRankings[0]?.name || '暂无冠军' }} {{ individualRankings[0]?.name || '暂无冠军' }}
@@ -858,7 +872,7 @@ onUnmounted(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.avatar-image-champion { .avatar-image-champion {
width: 120px; object-fit: contain;
} }
/* 冠军模块样式 */ /* 冠军模块样式 */
@@ -894,8 +908,6 @@ onUnmounted(() => {
} }
.champion-logo { .champion-logo {
width: 60px;
height: 60px;
object-fit: contain; object-fit: contain;
} }