diff --git a/server/app/api/controller/CommunityController.php b/server/app/api/controller/CommunityController.php index 80795749..d6c8df47 100644 --- a/server/app/api/controller/CommunityController.php +++ b/server/app/api/controller/CommunityController.php @@ -358,7 +358,11 @@ class CommunityController extends BaseApiController } } + $currentUser = User::field('id,nickname,avatar')->where('id', $this->userId)->findOrEmpty(); + $currentUserData = $currentUser->isEmpty() ? null : $currentUser->toArray(); + foreach ($list as &$item) { + $item['user'] = $currentUserData; $post = $postMap[$item['post_id']] ?? null; $item['post'] = $post && (int) $post['status'] === 1 ? [ 'id' => $post['id'], diff --git a/uniapp/src/pages/my_comments/my_comments.vue b/uniapp/src/pages/my_comments/my_comments.vue index d77e15e6..f6bbd428 100644 --- a/uniapp/src/pages/my_comments/my_comments.vue +++ b/uniapp/src/pages/my_comments/my_comments.vue @@ -10,7 +10,12 @@ - {{ item.reply_to ? '回复了评论' : '评论了帖子' }} + + + {{ item.user?.nickname || '我' }} + {{ item.reply_to ? '回复了评论' : '评论了帖子' }} + {{ formatTime(item.create_time) }} @@ -45,6 +50,7 @@ import { deleteComment, getMyCommentLists } from '@/api/community' const paging = shallowRef() const commentList = ref([]) +const avatarLoadFailed = ref(false) onShow(() => { paging.value?.reload() @@ -84,6 +90,14 @@ const confirmDelete = (item: any) => { }) } +const getCommentAvatar = (item: any) => { + return avatarLoadFailed.value ? '/static/images/avatar.png' : (item.user?.avatar || '/static/images/avatar.png') +} + +const handleAvatarError = () => { + avatarLoadFailed.value = true +} + const parseTimestamp = (value: string | number) => { if (typeof value === 'number') return value return new Date(String(value).replace(/-/g, '/')).getTime() / 1000 @@ -130,7 +144,33 @@ const formatTime = (value: string | number) => { margin-bottom: 16rpx; } +.comment-card__author { + min-width: 0; + display: flex; + align-items: center; +} + +.comment-card__avatar { + width: 40rpx; + height: 40rpx; + flex-shrink: 0; + margin-right: 10rpx; + border-radius: 50%; + background: #eef2f7; +} + +.comment-card__name { + max-width: 180rpx; + overflow: hidden; + color: #344055; + font-size: 24rpx; + font-weight: 500; + text-overflow: ellipsis; + white-space: nowrap; +} + .comment-card__label { + margin-left: 10rpx; color: #687385; font-size: 24rpx; }