🔧 chore:改进播放器组件的加载状态显示, 优化 GD音乐解析逻辑,增加超时处理,调整音源列表

This commit is contained in:
alger
2025-05-10 20:12:10 +08:00
parent 80450349c0
commit 9cc064c01b
5 changed files with 271 additions and 210 deletions
+14 -14
View File
@@ -31,32 +31,32 @@
<!-- 控制按钮区域 -->
<div class="control-buttons">
<button class="control-button previous" @click="handlePrev">
<div class="control-button previous" @click="handlePrev">
<i class="iconfont icon-prev"></i>
</button>
<button class="control-button play" @click="playMusicEvent">
</div>
<div class="control-button play" @click="playMusicEvent">
<i class="iconfont" :class="play ? 'icon-stop' : 'icon-play'"></i>
</button>
<button class="control-button next" @click="handleNext">
</div>
<div class="control-button next" @click="handleNext">
<i class="iconfont icon-next"></i>
</button>
</div>
</div>
<!-- 右侧功能按钮 -->
<div class="function-buttons">
<button class="function-button">
<div class="function-button">
<i
class="iconfont icon-likefill"
:class="{ 'like-active': isFavorite }"
@click="toggleFavorite"
></i>
</button>
</div>
<n-popover trigger="click" :z-index="99999999" placement="top" :show-arrow="false">
<template #trigger>
<button class="function-button" @click="mute">
<div class="function-button" @click="mute">
<i class="iconfont" :class="getVolumeIcon"></i>
</button>
</div>
</template>
<div class="volume-slider-wrapper">
<n-slider
@@ -69,15 +69,15 @@
</n-popover>
<!-- 播放列表按钮 -->
<button v-if="!component" class="function-button" @click="togglePlaylist">
<div v-if="!component" class="function-button" @click="togglePlaylist">
<i class="iconfont icon-list"></i>
</button>
</div>
</div>
<!-- 关闭按钮 -->
<button v-if="!component" class="close-button" @click="handleClose">
<div v-if="!component" class="close-button" @click="handleClose">
<i class="iconfont ri-close-line"></i>
</button>
</div>
</div>
<!-- 进度条 -->
@@ -39,6 +39,9 @@
lazy
preview-disabled
/>
<div v-if="playMusic?.playLoading" class="loading-overlay">
<i class="ri-loader-4-line loading-icon"></i>
</div>
<div class="hover-arrow">
<div class="hover-content">
<!-- <i class="ri-arrow-up-s-line text-3xl" :class="{ 'ri-arrow-down-s-line': musicFullVisible }"></i> -->
@@ -758,4 +761,25 @@ const handleDeleteSong = (song: SongResult) => {
}
}
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.loading-overlay {
@apply absolute inset-0 flex items-center justify-center rounded-2xl;
background-color: rgba(0, 0, 0, 0.5);
z-index: 2;
}
.loading-icon {
font-size: 24px;
color: white;
animation: spin 1s linear infinite;
}
</style>