【功能完善】商城: 客服会话消息缓存

This commit is contained in:
puhui999
2024-11-09 17:29:49 +08:00
parent e342e91f79
commit df34f65df8
3 changed files with 22 additions and 12 deletions

View File

@ -93,6 +93,10 @@ const emits = defineEmits<{
(e: 'change', v: KeFuConversationRespVO): void
}>()
const openRightMessage = (item: KeFuConversationRespVO) => {
// 同一个会话则不处理
if (activeConversationId.value === item.id) {
return
}
activeConversationId.value = item.id
emits('change', item)
}

View File

@ -236,19 +236,20 @@ const refreshMessageList = async (message?: any) => {
}
}
/** 获得新会话的消息列表 */
// TODO @puhui999可优化可以考虑本地做每个会话的消息 list 缓存然后点击切换时读取缓存然后异步获取新消息merge 下;
/** 获得新会话的消息列表, 点击切换时读取缓存然后异步获取新消息merge 下; */
const getNewMessageList = async (val: KeFuConversationRespVO) => {
// 会话切换,重置相关参数
messageList.value = []
total.value = 0
// 1. 缓存当前会话消息列表
kefuStore.saveMessageList(conversation.value.id, messageList.value)
// 2.1 会话切换,重置相关参数
messageList.value = kefuStore.getConversationMessageList(val.id) || []
total.value = messageList.value.length || 0
loadHistory.value = false
refreshContent.value = false
// 设置会话相关属性
// 2.2 设置会话相关属性
conversation.value = val
queryParams.conversationId = val.id
queryParams.createTime = undefined
// 获取消息
// 3. 获取消息
await refreshMessageList()
}
defineExpose({ getNewMessageList, refreshMessageList })
@ -299,8 +300,8 @@ const sendMessage = async (msg: any) => {
message.value = ''
// 加载消息列表
await refreshMessageList()
// 异步刷新
kefuStore.updateConversation(conversation.value.id)
// 更新会话缓存
await kefuStore.updateConversation(conversation.value.id)
}
/** 滚动到底部 */