From 2b329d33e46dd5612cc5aad83c5dc2fcb31bd20f Mon Sep 17 00:00:00 2001 From: puhui999 Date: Thu, 4 Jul 2024 17:00:50 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=EF=BC=9Ama?= =?UTF-8?q?ll=20=E5=AE=A2=E6=9C=8D=E6=8E=A5=E5=85=A5=20websocket=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=B6=88=E6=81=AF=E5=AE=9E=E6=97=B6=E6=8B=89?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/kefu/components/KeFuChatBox.vue | 23 +++---- .../kefu/components/KeFuConversationBox.vue | 16 ----- .../kefu/components/tools/constants.ts | 6 ++ src/views/mall/promotion/kefu/index.vue | 64 ++++++++++++++++++- 4 files changed, 75 insertions(+), 34 deletions(-) diff --git a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue index 8c6b5b71..c755cecf 100644 --- a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue +++ b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue @@ -101,7 +101,6 @@ const messageTool = useMessage() const message = ref('') // 消息 const messageList = ref([]) // 消息列表 const keFuConversation = ref({} as KeFuConversationRespVO) // 用户会话 -const poller = ref(null) // TODO puhui999: 轮训定时器,暂时模拟 websocket // 获得消息 TODO puhui999: 先不考虑下拉加载历史消息 const getMessageList = async (conversation: KeFuConversationRespVO) => { keFuConversation.value = conversation @@ -112,14 +111,15 @@ const getMessageList = async (conversation: KeFuConversationRespVO) => { messageList.value = list.reverse() // TODO puhui999: 首次加载时滚动到最新消息,如果加载的是历史消息则不滚动 await scrollToBottom() - // TODO puhui999: 轮训相关,功能完善后移除 - if (!poller.value) { - poller.value = setInterval(() => { - getMessageList(conversation) - }, 2000) - } } -defineExpose({ getMessageList }) +// 刷新消息列表 +const refreshMessageList = () => { + if (!keFuConversation.value) { + return + } + getMessageList(keFuConversation.value) +} +defineExpose({ getMessageList, refreshMessageList }) // 是否显示聊天区域 const showChatBox = computed(() => !isEmpty(keFuConversation.value)) // 处理表情选择 @@ -181,13 +181,6 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => { } return false }) -// TODO puhui999: 轮训相关,功能完善后移除 -onBeforeUnmount(() => { - if (!poller.value) { - return - } - clearInterval(poller.value) -})