feat(playlist): 增加歌单收藏和评论功能

- 在 CommentServiceImpl 中添加歌单评论相关逻辑
- 在 PlaylistServiceImpl 中实现歌单收藏和取消收藏功能
- 在 PlaylistDetail.vue 中显示歌单的收藏数和评论数
- 更新数据库模型,在 Singer 实体中添加收藏数和评论数字段
This commit is contained in:
ikmkj
2025-07-26 10:22:33 +08:00
parent 772c5a3e6a
commit f3a6f99992
4 changed files with 61 additions and 1 deletions

View File

@@ -141,6 +141,12 @@ const toggleCollect = async () => {
const res = await toggleCollectPlaylist(playlistId.value)
if (res.code === 200) {
isCollected.value = !isCollected.value
// 更新收藏数
if (isCollected.value) {
playlist.value.collectCount++
} else {
playlist.value.collectCount--
}
ElMessage.success(isCollected.value ? '收藏成功' : '已取消收藏')
} else {
ElMessage.error(res.message || '操作失败')
@@ -163,6 +169,8 @@ const deleteComment = async (commentId) => {
const res = await apiDeleteComment(commentId)
if (res.code === 200) {
comments.value = comments.value.filter(c => c.id !== commentId)
// 更新评论数
playlist.value.commentCount--
ElMessage.success('评论已删除')
} else {
ElMessage.error(res.message || '删除失败')
@@ -256,6 +264,8 @@ const submitComment = async (isReply = false) => {
commentContent.value = ''
}
ElMessage.success('评论已发送')
// 更新评论数
playlist.value.commentCount++
} else {
ElMessage.error(res.message || '评论失败')
}
@@ -388,6 +398,11 @@ onUnmounted(() => {
</div>
<div class="playlist-time">创建时间{{ playlist.createTime }}</div>
<div class="playlist-count">播放次数{{ formatPlayCount(playlist.playCount) }}</div>
<div class="playlist-stats">
<span>收藏数{{ playlist.collectCount }}</span>
<el-divider direction="vertical" />
<span>评论数{{ playlist.commentCount }}</span>
</div>
<div class="playlist-desc">{{ playlist.description }}</div>
<div class="playlist-actions">
@@ -488,7 +503,7 @@ onUnmounted(() => {
></el-empty>
</el-tab-pane>
<el-tab-pane label="评论">
<el-tab-pane :label="`评论(${playlist.commentCount || 0})`">
<!-- 评论输入框 -->
<div class="comment-input">
<el-input