Explorar o código

修复吞消息的bug

xsx hai 9 meses
pai
achega
0309596951
Modificáronse 2 ficheiros con 9 adicións e 18 borrados
  1. 5 10
      im-uniapp/store/chatStore.js
  2. 4 8
      im-web/src/store/chatStore.js

+ 5 - 10
im-uniapp/store/chatStore.js

@@ -374,7 +374,6 @@ export default defineStore('chatStore', {
 			this.chats.forEach((chat) => {
 				let chatKey = `${key}-${chat.type}-${chat.targetId}`
 				if (!chat.stored) {
-					chat.stored = true;
 					if (chat.delete) {
 						uni.removeStorageSync(chatKey);
 					} else {
@@ -386,15 +385,11 @@ export default defineStore('chatStore', {
 						}
 						// 存储热消息
 						let hotKey = chatKey + '-hot';
-						if (chat.messages.length > chat.hotMinIdx) {
-							let hotChat = Object.assign({}, chat);
-							hotChat.messages = chat.messages.slice(chat.hotMinIdx)
-							uni.setStorageSync(hotKey, hotChat);
-							console.log("热数据:",hotChat.messages.length)
-						} else {
-							uni.removeStorageSync(hotKey);
-						}
+						let hotChat = Object.assign({}, chat);
+						hotChat.messages = chat.messages.slice(chat.hotMinIdx)
+						uni.setStorageSync(hotKey, hotChat);
 					}
+					chat.stored = true;
 				}
 				if (!chat.delete) {
 					chatKeys.push(chatKey);
@@ -429,7 +424,7 @@ export default defineStore('chatStore', {
 						chatsData.chatKeys.forEach(key => {
 							let coldChat = uni.getStorageSync(key);
 							let hotChat = uni.getStorageSync(key + '-hot');
-							if (!coldChat && hotChat) {
+							if (!coldChat && !hotChat) {
 								return;
 							}
 							// 冷热消息合并

+ 4 - 8
im-web/src/store/chatStore.js

@@ -370,7 +370,6 @@ export default defineStore('chatStore', {
 				// 只存储有改动的会话
 				let chatKey = `${key}-${chat.type}-${chat.targetId}`
 				if (!chat.stored) {
-					chat.stored = true;
 					if (chat.delete) {
 						localForage.removeItem(chatKey);
 					} else {
@@ -382,14 +381,11 @@ export default defineStore('chatStore', {
 						}
 						// 存储热消息
 						let hotKey = chatKey + '-hot';
-						if (chat.messages.length > chat.hotMinIdx) {
-							let hotChat = Object.assign({}, chat);
-							hotChat.messages = chat.messages.slice(chat.hotMinIdx)
-							localForage.setItem(hotKey, hotChat)
-						} else {
-							localForage.removeItem(hotKey);
-						}
+						let hotChat = Object.assign({}, chat);
+						hotChat.messages = chat.messages.slice(chat.hotMinIdx)
+						localForage.setItem(hotKey, hotChat)
 					}
+					chat.stored = true;
 				}
 				if (!chat.delete) {
 					chatKeys.push(chatKey);