wkw 1 月之前
父节点
当前提交
60839f1082
共有 3 个文件被更改,包括 16 次插入6 次删除
  1. 9 4
      src/stores/modules/webSocketStore.js
  2. 4 1
      src/views/im/chat/index.vue
  3. 3 1
      src/views/im/hook/messagesHook.js

+ 9 - 4
src/stores/modules/webSocketStore.js

@@ -467,9 +467,10 @@ export const useWebSocketStore = defineStore("webSocketStore", {
       }
     },
     // 更新缓存里面的会话列表  type:0 发送者   1:接收者
-    updateSessionList(payload,type = 0) {
+    updateSessionList(payload,type = 0,msg) {
+      const walletStore = useWalletStore();
       const message = {...payload};
-      console.log('缓存中的列表数据',message)
+      console.log('缓存中的列表数据', message, msg)
       const systemStore = useSystemStore();
       const selfUuid = useWalletStore().account; // 当前用户ID
       let sessions = systemStore.ImsessionList ? [...systemStore.ImsessionList] : [];
@@ -487,7 +488,11 @@ export const useWebSocketStore = defineStore("webSocketStore", {
 
       };
       // console.log(sessions, sessions.length)
-      const lastMsg = message.contentType === MsgType.MSG_TYPE.TEXT || message.contentType === MsgType.MSG_TYPE.NOTICE ? message.content : (mapSet[message.contentType] || '[语音视频]');
+      let lastMsg = message.contentType === MsgType.MSG_TYPE.TEXT || message.contentType === MsgType.MSG_TYPE.NOTICE ? (msg?msg.content : message.content) : (mapSet[message.contentType] || '[语音视频]');
+      if ([MsgType.MESSAGE_REVOKE, MsgType.MESSAGE_REVOKE_GROUP].includes(message.messageType)){
+        console.log(211111)
+        lastMsg = `${message.from == walletStore.account ? '你' : (message.fromUsername || '对方')}撤回了一条消息`
+      }
 
       let index = -1;
       let uuid = type == 0 ? message.to : message.from;
@@ -529,7 +534,7 @@ export const useWebSocketStore = defineStore("webSocketStore", {
           newMsg: lastMsg,
           createDate: time,
           createdAt: time,
-          unReadNum: type == 0 ? 0 : unReadNum,
+          unReadNum: type == 0 ? 0 : unReadNum
           // avatar
         };
         sessions.splice(index, 1);

+ 4 - 1
src/views/im/chat/index.vue

@@ -12,7 +12,7 @@
     </div>
 
     <!-- 群公告 -->
-    <div class="groupNotice" v-if="wsStore.toUserInfo.type == 'group'">
+    <div class="groupNotice" v-if="wsStore.toUserInfo.type == 'group'" @click="goNoticePage">
       <div class="m-ellipsis">{{ wsStore.toUserInfo.notice }}</div>
       <svg-icon class="item-icon" name="right1" />
     </div>
@@ -676,6 +676,9 @@ const goDetail = () =>{
     path: 'detail',
     query:{ status:wsStore.toUserInfo.type == 'user'?1:2 }
   }) // 1:单聊  2:群聊
+}
+const goNoticePage = () => {
+  
 }
 </script>
 

+ 3 - 1
src/views/im/hook/messagesHook.js

@@ -14,8 +14,10 @@ const formatMessageExt = (message, ext) => {
   if(isExt){
     message.content= ext.content || message.content;
     message.msgId= ext.msgId || null;
-    message.cc = ext.cc || message.cc;
+    message.cc = ext.cc || message.cc;//@  0:全部
     message.id = ext.id || message.id;
+    message.quote = ext.quote || message.quote; //引用的消息id
+    message.isTemp = ext.isTemp || message.isTemp;//阅后即焚
   }
   return message
 }