From afd3fe35aeaae4f3984c94ca29d57b5a3a52107f Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期二, 15 十月 2024 10:24:39 +0800
Subject: [PATCH] websocket接口对接

---
 src/components/RuoYi/Msgger/index.vue |   47 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/src/components/RuoYi/Msgger/index.vue b/src/components/RuoYi/Msgger/index.vue
index dfe2880..49d8891 100644
--- a/src/components/RuoYi/Msgger/index.vue
+++ b/src/components/RuoYi/Msgger/index.vue
@@ -2,10 +2,11 @@
     <div class="msgBox" @click.stop="setShowMenuClick(true)">
 
         <i style="font-size: 20px;" class="el-icon-chat-line-round"></i>
-        <el-badge v-show="msgCount > 0" :value="msgCount" class="item">
+        <el-badge v-show="$store.state.mapLayers.msgList.length > 0" :value="$store.state.mapLayers.msgList.length"
+            class="item">
         </el-badge>
-        <el-dialog title="寮傚父淇℃伅" :visible.sync="dialogVisible" width="30%" :show-close="false">
-            <el-table :data="msgData" style="width: 100%">
+        <el-dialog title="鏁呴殰淇℃伅" :visible.sync="dialogVisible" width="30%" :show-close="false">
+            <el-table :data="$store.state.mapLayers.msgList" style="width: 100%">
                 <el-table-column prop="msg" label="璁惧鍚嶇О">
                 </el-table-column>
                 <el-table-column prop="point" label="璁惧浣嶇疆">
@@ -31,7 +32,7 @@
 </template>
 
 <script>
- 
+
 import olMap from '@/components/mapOl/index.vue';
 
 export default {
@@ -46,10 +47,7 @@
             dialogFlag: false,
             wsSocket: null,
             innerVisible: false,
-            msgData: [{
-                msg: "鍙樺帇鍣ㄦ晠闅�",
-                point: "POINT (112.56978672907 37.8558881392881)"
-            }],
+            msgData: [],
             parentData: null,
         }
     },
@@ -67,6 +65,7 @@
                 type: 'point',
                 isShow: false,
             }
+ 
             this.parentData = JSON.stringify([obj])
             this.innerVisible = true
         },
@@ -84,12 +83,33 @@
             this.wsSocket.onopen = (event) => {
                 console.log('WebSocket杩炴帴鎴愬姛');
             };
+            this.wsSocket.onclose = () => {
+                console.log('WebSocket杩炴帴鍏抽棴');
+                this.wsSocket = null
+            };
             this.wsSocket.onmessage = (event) => {
 
                 if (event.data != "杩炴帴鎴愬姛") {
                     const obj = JSON.parse(event.data);
-                    if (obj.mes) {
-                        this.setShowMsg(obj)
+                    if (obj.type == "error") {
+                        if (this.$store.state.mapLayers.msgList.length == 0) {
+                            this.$store.state.mapLayers.msgList.push(obj)
+                        } else {
+                          
+                            var rs = this.$store.state.mapLayers.msgList;
+                            var st = rs.filter(item => {
+                                if (item.msg == obj.msg && item.point == obj.point && item.line == obj.line) {
+                                    return item
+                                }
+                            })
+                            if (st.length <= 0) {
+                                this.$store.state.mapLayers.msgList.push(obj)
+                            }
+
+
+
+
+                        }
                     }
                 }
                 // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
@@ -113,6 +133,13 @@
         }
 
     },
+    beforeDestroy() {
+        if (this.wsSocket) {
+            this.wsSocket.close();
+
+        }
+
+    },
 }
 </script>
 

--
Gitblit v1.9.3