From dd0ccb98188578ca04dec2fff2f59f7df4c69523 Mon Sep 17 00:00:00 2001 From: wangyifeng <812766448@qq.com> Date: Tue, 22 Apr 2025 14:49:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=B6=E8=B5=B7=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E5=90=8C=E6=97=B6=E5=81=9C=E6=AD=A2=E5=B7=B2?= =?UTF-8?q?=E8=AF=BB=E6=9C=AA=E8=AF=BB=E5=AE=9A=E6=97=B6=E5=99=A8=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E5=9C=A8=E6=81=A2=E5=A4=8D=E5=90=8E=E6=89=93=E5=BC=80?= =?UTF-8?q?=EF=BC=9B=E8=A7=A3=E5=86=B3=E7=BE=A4=E8=81=8A=E8=B8=A2=E4=BA=BA?= =?UTF-8?q?=E5=90=8E=E8=87=AA=E5=B7=B1=E4=B9=9F=E7=9C=8B=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E5=8F=B3=E4=B8=8A=E8=A7=92=E7=9A=84=E7=AE=A1=E7=90=86=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/event/talk.js | 10 ++++++++- src/pages/dialog/index.vue | 42 +++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/event/talk.js b/src/event/talk.js index 6a0c46b..23aa8e2 100644 --- a/src/event/talk.js +++ b/src/event/talk.js @@ -244,7 +244,15 @@ class Talk extends Base { //群成员被移出时,需要更新群成员权限 if ([1104, 1115].includes(record.msg_type)) { - useDialogueStore().updateQuit() + console.error(this.resource.extra.members, 'this.resource.extra.members') + if (this.resource?.extra?.members?.length > 0) { + const isMeQuit = this.resource.extra.members.find( + (item) => item.user_id === this.getAccountId(), + ) + if (isMeQuit) { + useDialogueStore().updateQuit() + } + } } //群禁言变化时,需要更新群禁言状态——即更新群成员列表 diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue index b87cd7d..b2a9b9e 100644 --- a/src/pages/dialog/index.vue +++ b/src/pages/dialog/index.vue @@ -704,7 +704,12 @@ import zu6053 from '@/static/image/chatList/zu6053@2x.png' import deepBubble from '@/components/deep-bubble/deep-bubble.vue' import { isRevoke } from './menu' import useConfirm from '@/components/x-confirm/useConfirm.js' -import { onLoad as uniOnload, onUnload as uniOnUnload } from '@dcloudio/uni-app' +import { + onLoad as uniOnload, + onUnload as uniOnUnload, + onShow, + onHide, +} from '@dcloudio/uni-app' import ws from '@/connect' Quill.register('formats/emoji', EmojiBlot) @@ -807,6 +812,7 @@ const state = ref({ currentIsUnread: 1, //当前已读未读状态 readDetailHeight: 400, //已读未读详情高度 isFirstEnter: true, //是否是第一次进入 + isFromHide: false, //是否从hide后恢复 }) // 创建一个响应式的 Map 来维护已读数量 @@ -2382,6 +2388,40 @@ onUnmounted(() => { } }) +onShow(() => { + if (state.value.isFromHide) { + if (state.value.setMessageReadInterval) { + clearInterval(state.value.setMessageReadInterval) + state.value.setMessageReadInterval = null + } + state.value.setMessageReadInterval = setInterval(() => { + checkVisibleElements() + }, 2000) + + if (state.value.setOutMessageReadInterval) { + clearInterval(state.value.setOutMessageReadInterval) + state.value.setOutMessageReadInterval = null + } + state.value.setOutMessageReadInterval = setInterval(() => { + checkVisibleOutElements() + }, 2000) + state.value.isFromHide = false + } +}) +onHide(() => { + state.value.isFromHide = true + if (state.value.setMessageReadInterval) { + clearInterval(state.value.setMessageReadInterval) + state.value.setMessageReadInterval = null + checkVisibleElements() + } + if (state.value.setOutMessageReadInterval) { + clearInterval(state.value.setOutMessageReadInterval) + state.value.setOutMessageReadInterval = null + checkVisibleOutElements() + } +}) + // 修改防抖函数的实现 const showMentionSelectDebounced = (quill) => { const text = quill.getText()