Selaa lähdekoodia

修改bug

修改bug
Sean 3 kuukautta sitten
vanhempi
sitoutus
4633b7b5b4
2 muutettua tiedostoa jossa 104 lisäystä ja 54 poistoa
  1. 13 6
      src/store/modules/template.js
  2. 91 48
      src/views/chat/hall.vue

+ 13 - 6
src/store/modules/template.js

@@ -194,10 +194,19 @@ const mutations = {
     //data.dataSort = dataSort
     //pageStatus==1 首页
     if(state.pageStatus == 1){
-      //不能这么删除,因为不按顺序删除会导致数组里面的位置法生变化
-      state.pageData.index.splice(data.dataSort,1);
-      Message.success('模块已删除!');
-      console.log(state.pageData.index);
+      //必须通过重新查找id的方式来删除
+      const indexToRemove = state.pageData.index.findIndex(item => item.i === data.i);
+      if (indexToRemove !== -1) {
+        state.pageData.index.splice(indexToRemove, 1);
+        Message.success('模块已删除!');
+        console.log('模块已删除,当前的页面构建数据为:', state.pageData.index);
+      } else {
+        Message.warning('未找到要删除的模块!');
+      }
+      // base 0.0.2 如果使用splice方法删除sort,当你就剩下最后一个的时候,会出现找不到那个元素的问题
+      // state.pageData.index.splice(data.dataSort,1);
+      // Message.success('模块已删除!');
+      // console.log(state.pageData.index);
     }
     //pageStatus==2 分类页
     if(state.pageStatus == 2){}
@@ -218,9 +227,7 @@ const mutations = {
     let dataSort = state.editDataSort;
     let sort = state.editComponentSort;
     let num = state.editComponentStyle;
-
     console.log(id,dataSort,sort,num);
-
     //pageStatus==1 首页
     if(state.pageStatus == 1){
       // 获取当前模块数据并进行深拷贝

+ 91 - 48
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">
@@ -2207,45 +2207,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",//自己说的
@@ -2263,19 +2270,55 @@ 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();
+              }
+            }
+          } 
+
+
+          
         }
       }
     },