feat(singer): 添加歌手评论和收藏功能
- 在 CommentServiceImpl 中增加对歌手评论的处理逻辑- 在 SingerServiceImpl 中实现歌手收藏和取消收藏的功能 - 在前端 SingerDetail 组件中添加歌手的评论数、收藏数显示和相关操作
This commit is contained in:
@@ -183,6 +183,12 @@ const toggleCollect = async () => {
|
||||
const res = await toggleCollectSinger(singerId.value)
|
||||
if (res.code === 200) {
|
||||
isCollected.value = !isCollected.value
|
||||
// 更新收藏数
|
||||
if (isCollected.value) {
|
||||
singer.value.collectCount++
|
||||
} else {
|
||||
singer.value.collectCount--
|
||||
}
|
||||
ElMessage.success(isCollected.value ? '收藏成功' : '已取消收藏')
|
||||
} else {
|
||||
ElMessage.error(res.message || '操作失败')
|
||||
@@ -274,6 +280,8 @@ const submitComment = async (isReply = false) => {
|
||||
commentContent.value = ''
|
||||
}
|
||||
ElMessage.success('评论已发送')
|
||||
// 更新评论数
|
||||
singer.value.commentCount++
|
||||
} else {
|
||||
ElMessage.error(res.message || '评论失败')
|
||||
}
|
||||
@@ -295,6 +303,8 @@ const deleteComment = async (commentId) => {
|
||||
const res = await apiDeleteComment(commentId)
|
||||
if (res.code === 200) {
|
||||
comments.value = comments.value.filter(c => c.id !== commentId)
|
||||
// 更新评论数
|
||||
singer.value.commentCount--
|
||||
ElMessage.success('评论已删除')
|
||||
} else {
|
||||
ElMessage.error(res.message || '删除失败')
|
||||
@@ -414,6 +424,14 @@ onUnmounted(() => {
|
||||
<div class="stat-value">{{ formatFans(singer.fansCount || 0) }}</div>
|
||||
<div class="stat-label">粉丝数</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">{{ singer.collectCount || 0 }}</div>
|
||||
<div class="stat-label">收藏数</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">{{ singer.commentCount || 0 }}</div>
|
||||
<div class="stat-label">评论数</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="singer-intro">{{ singer.introduction }}</div>
|
||||
|
||||
@@ -500,7 +518,7 @@ onUnmounted(() => {
|
||||
|
||||
|
||||
|
||||
<el-tab-pane label="评论">
|
||||
<el-tab-pane :label="`评论(${singer.commentCount || 0})`">
|
||||
<!-- 评论输入框 -->
|
||||
<div class="comment-input">
|
||||
<el-input
|
||||
|
||||
Reference in New Issue
Block a user