fix(music-detail): show global like/collect counts on music detail page
This commit is contained in:
@@ -54,6 +54,16 @@
|
||||
<span class="label">发行日期:</span>
|
||||
<span class="value">{{ music.releaseDate || '-' }}</span>
|
||||
</div>
|
||||
|
||||
<div class="meta-item">
|
||||
<span class="label">点赞数:</span>
|
||||
<span class="value">{{ music.likeCount ?? 0 }}</span>
|
||||
</div>
|
||||
|
||||
<div class="meta-item">
|
||||
<span class="label">收藏数:</span>
|
||||
<span class="value">{{ music.collectCount ?? 0 }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="music-actions">
|
||||
@@ -321,7 +331,11 @@ const fetchMusicDetail = async () => {
|
||||
const res = await getMusicById(id)
|
||||
if (res.code === 200) {
|
||||
if (res.data) {
|
||||
music.value = res.data
|
||||
music.value = {
|
||||
...res.data,
|
||||
likeCount: res.data.likeCount ?? 0,
|
||||
collectCount: res.data.collectCount ?? 0
|
||||
}
|
||||
// 获取音乐状态
|
||||
fetchMusicStatus()
|
||||
} else {
|
||||
@@ -543,6 +557,12 @@ const toggleCollect = async () => {
|
||||
if (res.code === 200) {
|
||||
// 后端直接返回了最新的收藏状态 (true/false),直接赋值即可
|
||||
music.value.collected = res.data
|
||||
// 仅在操作成功时同步更新本地收藏数
|
||||
if (music.value.collected) {
|
||||
music.value.collectCount = (music.value.collectCount || 0) + 1
|
||||
} else {
|
||||
music.value.collectCount = Math.max(0, (music.value.collectCount || 0) - 1)
|
||||
}
|
||||
ElMessage.success(res.message || (music.value.collected ? '收藏成功' : '已取消收藏'))
|
||||
} else {
|
||||
ElMessage.error(res.message || '操作失败')
|
||||
|
||||
Reference in New Issue
Block a user