Pārlūkot izejas kodu

修改bug

修改bug
Sean 3 mēneši atpakaļ
vecāks
revīzija
ad7a8ea9ed
1 mainītis faili ar 92 papildinājumiem un 49 dzēšanām
  1. 92 49
      src/views/chat/hall.vue

+ 92 - 49
src/views/chat/hall.vue

@@ -276,7 +276,7 @@
                   <img src="@/assets/chat/user/admin.png" v-else>
                 </div>
                 <div class="otherUserMessageText">
-                  <div class="messageGroupInvite" @click="openGroupInviteWindow">
+                  <div class="messageGroupInvite" @click="openGroupInviteWindow(item)">
                     <div class="messageGroupInviteTop">
                       <div class="messageGroupInviteIcon">
                         <img src="@/assets/chat/user/group.jpg">
@@ -2041,6 +2041,7 @@ export default {
       //info.content.split(',')[0] 群名称
       //info.content.split(',')[1] 群id
       //获得要加入的群聊详情
+      console.log(info.content)
       this.groupInviteInfo.group_name = info.content.split(',')[0];
       this.groupInviteInfo.group_id = info.content.split(',')[1];
     },
@@ -2247,45 +2248,52 @@ export default {
     handleIncomingMessage(event) {
       const message = JSON.parse(event.data);
       console.log("监听消息:",message)
-     
-      //先判断是否为群消息
+
+      console.log(message.receiver_id.length == 18)
+      //第一步:先判断是否为群消息
       if (message.receiver_id && message.receiver_id.length == 18) {
-        //18位就是群聊
-        if(Number(this.myUserId) == Number(message.user_id)){
-          //如果message的receiverId和会话的receiverId一致,说明这条信息是自己发的回显
-          let receiveMessage = {
-            action:"said",//自己说的
-            user_avatar:message.user_avatar,//头像
-            content:message.content,//内容
-            msg_type:message.msg_type,//消息类型
+        //第二步:判断当前接收的消息是否显示到聊天框中
+        if(Number(this.receiverId)==Number(message.receiver_id)){
+          console.log("当前消息为群消息,并且可以显示到当前的会话框中!")
+          //18位就是群聊
+          if(Number(this.myUserId) == Number(message.user_id)){
+            //如果message的receiverId和会话的receiverId一致,说明这条信息是自己发的回显
+            let receiveMessage = {
+              action:"said",//自己说的
+              user_avatar:message.user_avatar,//头像
+              content:message.content,//内容
+              msg_type:message.msg_type,//消息类型
+            }
+            console.log("来自单聊的回显消息:"+this.receiverId,message.receiver_id)
+            console.log(message)
+            //消息添加到聊天记录
+            this.chatrecords.push(receiveMessage);
+            // 确保 Vue 能够检测到数组的变化
+            //this.$set(this.chatrecords, this.chatrecords.length, receiveMessage);
+            console.log(this.chatrecords)
+            //滚动条滚动到底部
+            this.scorllBottom();
+          }else{
+            let receiveMessage = {
+              action:"recieved",//对方说的
+              receiver_avatar:message.user_avatar,//头像
+              content:message.content,//内容
+              msg_type:message.msg_type,//消息类型
+            }
+            //如果message的receiverId和会话的receiverId不一致,说明这条信息是别人发的,需要添加到聊天记录
+            //消息添加到聊天记录
+            console.log("来自单聊消息:"+this.receiverId,message.user_id)
+            this.chatrecords.push(receiveMessage);
+            console.log(message)
+            //滚动条滚动到底部
+            this.scorllBottom();
           }
-          console.log("来自单聊的回显消息:"+this.receiverId,message.receiver_id)
-          console.log(message)
-          //消息添加到聊天记录
-          this.chatrecords.push(receiveMessage);
-          // 确保 Vue 能够检测到数组的变化
-          //this.$set(this.chatrecords, this.chatrecords.length, receiveMessage);
-          console.log(this.chatrecords)
-          //滚动条滚动到底部
-          this.scorllBottom();
         }else{
-          let receiveMessage = {
-            action:"recieved",//对方说的
-            receiver_avatar:message.user_avatar,//头像
-            content:message.content,//内容
-            msg_type:message.msg_type,//消息类型
-          }
-          //如果message的receiverId和会话的receiverId不一致,说明这条信息是别人发的,需要添加到聊天记录
-          //消息添加到聊天记录
-          console.log("来自单聊消息:"+this.receiverId,message.user_id)
-          this.chatrecords.push(receiveMessage);
-          console.log(message)
-          //滚动条滚动到底部
-          this.scorllBottom();
+          console.log("当前消息为群消息,但是用户未开启此聊天窗口!")
         }
       }else{
-        //非18位是单聊
-        if(Number(this.myUserId) == Number(message.user_id)){
+        //当前的单聊消息是自己发的,回显到聊天框中
+        if(Number(this.receiverId)==Number(message.receiver_id)){
           //如果message的receiverId和会话的receiverId一致,说明这条信息是自己发的回显
           let receiveMessage = {
             action:"said",//自己说的
@@ -2303,22 +2311,57 @@ export default {
           //滚动条滚动到底部
           this.scorllBottom();
         }else{
-          let receiveMessage = {
-            action:"recieved",//对方说的
-            receiver_avatar:message.user_avatar,//头像
-            content:message.content,//内容
-            msg_type:message.msg_type,//消息类型
-          }
-          //如果message的receiverId和会话的receiverId不一致,说明这条信息是别人发的,需要添加到聊天记录
-          //消息添加到聊天记录
-          console.log("来自单聊消息:"+this.receiverId,message.user_id)
-          this.chatrecords.push(receiveMessage);
-          console.log(message)
-          //滚动条滚动到底部
-          this.scorllBottom();
+          //判断要回显的内容是不是在群聊
+          if(Number(message.receiver_id.length) == 18){
+            console.log("当前是单聊消息,你选择的是单聊框,可以回显!")
+            let receiveMessage = {
+              action:"recieved",//对方说的
+              receiver_avatar:message.user_avatar,//头像
+              content:message.content,//内容
+              msg_type:message.msg_type,//消息类型
+            }
+            console.log("来自单聊的回显消息:"+this.receiverId,message.receiver_id)
+            console.log(message)
+            //消息添加到聊天记录
+            this.chatrecords.push(receiveMessage);
+            // 确保 Vue 能够检测到数组的变化
+            //this.$set(this.chatrecords, this.chatrecords.length, receiveMessage);
+            console.log(this.chatrecords)
+            //滚动条滚动到底部
+            this.scorllBottom();
+          }else{
+            // console.log(this.receiverId)
+            // console.log(message.receiver_id,message.user_id)
+            // console.log("当前是单聊消息,但是你选择的是群聊框,该条消息不能回显!")
+            if(this.receiverId!=message.receiver_id&&this.receiverId!=message.user_id){
+              //收到单聊消息,但是单聊消息不属于当前的聊天窗口
+              console.log("当前单聊消息不属于当前的聊天窗口,不回显!")
+            }else{
+              if(this.receiverId==message.user_id){
+                console.log("当前单聊消息属于当前的聊天窗口,回显!")
+                let receiveMessage = {
+                  action:"recieved",//对方说的
+                  receiver_avatar:message.user_avatar,//头像
+                  content:message.content,//内容
+                  msg_type:message.msg_type,//消息类型
+                }
+                console.log("来自单聊的回显消息:"+this.receiverId,message.receiver_id)
+                console.log(message)
+                //消息添加到聊天记录
+                this.chatrecords.push(receiveMessage);
+                // 确保 Vue 能够检测到数组的变化
+                //this.$set(this.chatrecords, this.chatrecords.length, receiveMessage);
+                console.log(this.chatrecords)
+                //滚动条滚动到底部
+                this.scorllBottom();
+              }
+            }
+          } 
+
+
+          
         }
       }
-      
     },
     // 5.2 发送消息
     sendUserMessage() {