From e61d0a5aa294a949299ccecd4f7dcb49c3a1cb46 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 18 Jun 2026 07:21:01 -0700 Subject: [PATCH] =?UTF-8?q?fix(im)=EF=BC=9A=E5=AF=B9=E9=BD=90=20Vue3=20?= =?UTF-8?q?=E5=B7=B2=E8=AF=BB=E6=B8=B8=E6=A0=87=E4=BF=AE=E5=A4=8D=20Vben?= =?UTF-8?q?=20=E6=9C=AA=E8=AF=BB=E6=95=B0=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Vben 消息离线 pull 入库时,按 conversation read position 过滤已读消息,避免已读历史消息重新累加未读 - Vben WebSocket 实时插入消息时,同步增加 read position 覆盖判断,和 Vue3+EP 的未读统计口径保持一致 - 保持未读自增入口只在 messageStore 的 applyPulledMessageList 和 insertMessage 两处 --- apps/web-antd/src/views/im/home/store/messageStore.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/web-antd/src/views/im/home/store/messageStore.ts b/apps/web-antd/src/views/im/home/store/messageStore.ts index 4cc81bf3b..87bfcd511 100644 --- a/apps/web-antd/src/views/im/home/store/messageStore.ts +++ b/apps/web-antd/src/views/im/home/store/messageStore.ts @@ -509,6 +509,7 @@ export const useMessageStore = defineStore('imMessageStore', { if ( !message.selfSend && !isActive && + !conversationStore.isMessageCoveredByReadPosition(conversation, message) && isNormalMessage(message.type) && message.status !== ImMessageStatus.RECALL ) { @@ -613,6 +614,7 @@ export const useMessageStore = defineStore('imMessageStore', { if ( !message.selfSend && !isActive && + !conversationStore.isMessageCoveredByReadPosition(conversation, message) && isNormalMessage(message.type) && message.status !== ImMessageStatus.RECALL ) {