From 1b51926b19abeac7a8626f720193cb9bd8f08eda Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 4 May 2026 16:05:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(im):=20=E7=A7=BB=E9=99=A4=20TIP=5FTIME?= =?UTF-8?q?=20=E6=B6=88=E6=81=AF=E7=B1=BB=E5=9E=8B=EF=BC=8C=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=86=E9=9A=94=E6=9D=A1=E6=94=B9=E4=B8=BA=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E6=97=B6=E6=8C=89=20prevMessage.sendTime=20=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 顺带修复 Bug-Y(删除最后一条消息后孤立时间分隔条) --- .../conversation/ConversationItem.vue | 2 +- .../components/message/MessageHistory.vue | 7 ++-- .../components/message/MessageItem.vue | 29 ++++++++++++----- .../components/message/MessagePanel.vue | 8 +++-- src/views/im/home/store/conversationStore.ts | 32 +++---------------- src/views/im/home/types/index.ts | 1 - src/views/im/utils/constants.ts | 3 +- 7 files changed, 36 insertions(+), 46 deletions(-) diff --git a/src/views/im/home/pages/conversation/components/conversation/ConversationItem.vue b/src/views/im/home/pages/conversation/components/conversation/ConversationItem.vue index c1fac2e05..8ebdda8f2 100644 --- a/src/views/im/home/pages/conversation/components/conversation/ConversationItem.vue +++ b/src/views/im/home/pages/conversation/components/conversation/ConversationItem.vue @@ -127,7 +127,7 @@ const lastSenderDisplayName = computed(() => { ) }) -/** 群聊 + 有最后发送者 + 最后一条是普通消息时,显示发送者前缀(TIP_TIME / TIP_TEXT / RECALL / 草稿态不带前缀) */ +/** 群聊 + 有最后发送者 + 最后一条是普通消息时,显示发送者前缀(TIP_TEXT / RECALL / 草稿态不带前缀) */ const showSendName = computed(() => { if (draft.value) { return false diff --git a/src/views/im/home/pages/conversation/components/message/MessageHistory.vue b/src/views/im/home/pages/conversation/components/message/MessageHistory.vue index 17d9b8fe7..20b4fc3b8 100644 --- a/src/views/im/home/pages/conversation/components/message/MessageHistory.vue +++ b/src/views/im/home/pages/conversation/components/message/MessageHistory.vue @@ -529,16 +529,13 @@ function matchesActiveFilter(message: Message): boolean { } /** - * 当前列表:先剔除 TIP_TIME(每行已有绝对时间,时间分隔线无意义)、 - * 再 activeFilter 过滤、再 keyword 模糊命中、最后 reverse(最新在前) + * 当前列表:先 activeFilter 过滤、再 keyword 模糊命中、最后 reverse(最新在前) * * 关键字命中走 textSnippetOf —— 文本拿原文、媒体拿"[图片]"等占位词、文件拿文件名 */ const currentList = computed(() => { const trimmedKeyword = keyword.value.trim() - let list = allMessages.value - .filter((message) => message.type !== ImMessageType.TIP_TIME) - .filter(matchesActiveFilter) + let list = allMessages.value.filter(matchesActiveFilter) if (trimmedKeyword) { list = list.filter((message) => textSnippetOf(message).includes(trimmedKeyword)) } diff --git a/src/views/im/home/pages/conversation/components/message/MessageItem.vue b/src/views/im/home/pages/conversation/components/message/MessageItem.vue index dfe600118..76381183a 100644 --- a/src/views/im/home/pages/conversation/components/message/MessageItem.vue +++ b/src/views/im/home/pages/conversation/components/message/MessageItem.vue @@ -1,15 +1,15 @@