mirror of
https://gitee.com/lijingbo-2021/open-anylink-web.git
synced 2025-12-30 11:02:25 +00:00
恢复SelectedSessionId缓存,否则状态同步有问题
This commit is contained in:
@@ -9,6 +9,15 @@ import { ElMessage } from 'element-plus'
|
||||
|
||||
// 消息功能相关需要缓存的数据,不持久化存储
|
||||
export const messageStore = defineStore('anylink-message', () => {
|
||||
/**
|
||||
* message页面当前被选中的sessionId
|
||||
*/
|
||||
const selectedSessionId = ref('')
|
||||
|
||||
const setSelectedSessionId = (id) => {
|
||||
selectedSessionId.value = id
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话列表
|
||||
* 格式:{sessionId_1: session_1, sessionId_2: session_2, ...}
|
||||
@@ -170,6 +179,7 @@ export const messageStore = defineStore('anylink-message', () => {
|
||||
)
|
||||
|
||||
const clear = () => {
|
||||
selectedSessionId.value = ''
|
||||
sessionList.value = {}
|
||||
msgRecordsList.value = {}
|
||||
partitions.value = {}
|
||||
@@ -227,6 +237,8 @@ export const messageStore = defineStore('anylink-message', () => {
|
||||
}
|
||||
|
||||
return {
|
||||
selectedSessionId,
|
||||
setSelectedSessionId,
|
||||
sessionList,
|
||||
addSession,
|
||||
deleteSession,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
eslint-disable prettier/prettier
|
||||
<script setup>
|
||||
import { ref, onMounted, computed, nextTick, watch } from 'vue'
|
||||
import { ref, onMounted, onUnmounted, computed, nextTick, watch } from 'vue'
|
||||
import {
|
||||
Microphone,
|
||||
VideoCamera,
|
||||
@@ -85,7 +85,9 @@ const myAccount = computed(() => {
|
||||
})
|
||||
|
||||
//当前被选中的session
|
||||
const selectedSessionId = ref('')
|
||||
const selectedSessionId = computed(() => {
|
||||
return messageData.selectedSessionId || ''
|
||||
})
|
||||
|
||||
// 消息拉取是否结束
|
||||
const pullMsgDone = computed(() => {
|
||||
@@ -242,7 +244,7 @@ onMounted(async () => {
|
||||
wsConnect.bindGroupSystemMsgEvent(onReceiveGroupSystemMsg(msgListDiv, capacity)) //绑定接收群系统消息事件
|
||||
|
||||
// 这里要接收从其他页面跳转过来传递的sessionId参数
|
||||
const routerSessionId = router.currentRoute.value.query.sessionId || selectedSessionId.value
|
||||
const routerSessionId = router.currentRoute.value.query.sessionId
|
||||
if (routerSessionId) {
|
||||
if (routerSessionId in messageData.sessionList) {
|
||||
handleSelectedSession(routerSessionId)
|
||||
@@ -261,6 +263,10 @@ onMounted(async () => {
|
||||
}
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
messageData.setSelectedSessionId('')
|
||||
})
|
||||
|
||||
const handleMsgListWheel = async () => {
|
||||
if (
|
||||
msgListDiv.value.scrollTop === 0 &&
|
||||
@@ -421,7 +427,7 @@ const handleSelectedSession = async (sessionId) => {
|
||||
router.replace({ query: { sessionId: sessionId } })
|
||||
|
||||
if (selectedSessionId.value !== sessionId) {
|
||||
selectedSessionId.value = sessionId
|
||||
messageData.setSelectedSessionId(sessionId)
|
||||
initSession(sessionId)
|
||||
locateSession(sessionId)
|
||||
|
||||
@@ -809,7 +815,7 @@ const onOpenSessionMenu = (sessionId) => {
|
||||
}
|
||||
|
||||
const onNoneSelected = () => {
|
||||
selectedSessionId.value = ''
|
||||
messageData.setSelectedSessionId('')
|
||||
}
|
||||
|
||||
const onVoiceCall = () => {
|
||||
|
||||
Reference in New Issue
Block a user