From 7d57b0fef0f220dfe7c868ce1113a7ce6eb6c468 Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期三, 21 八月 2024 11:23:06 +0800
Subject: [PATCH] 添加本地矢量地图服务,初始化视角切换

---
 src/components/RuoYi/Msgger/index.vue |   96 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 90 insertions(+), 6 deletions(-)

diff --git a/src/components/RuoYi/Msgger/index.vue b/src/components/RuoYi/Msgger/index.vue
index 3fd0286..dfe2880 100644
--- a/src/components/RuoYi/Msgger/index.vue
+++ b/src/components/RuoYi/Msgger/index.vue
@@ -1,32 +1,116 @@
 <template>
-    <div class="msgBox" @click="setShowMenuClick">
+    <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>
+        <el-dialog title="寮傚父淇℃伅" :visible.sync="dialogVisible" width="30%" :show-close="false">
+            <el-table :data="msgData" style="width: 100%">
+                <el-table-column prop="msg" label="璁惧鍚嶇О">
+                </el-table-column>
+                <el-table-column prop="point" label="璁惧浣嶇疆">
+                </el-table-column>
+                <el-table-column label="鎿嶄綔" width="100">
+                    <template slot-scope="scope">
+                        <el-button @click="handleClick(scope.row)" type="text" size="small">鏌ョ湅</el-button>
+                        <el-button @click="handleClick2(scope.row)" type="text" size="small">鍒嗗彂</el-button></el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click.stop="dialogVisible = false">鍏� 闂�</el-button>
+            </span>
+            <el-dialog width="30%" title="浣嶇疆" :visible.sync="innerVisible" append-to-body>
+                <div style="height: 540px">
+                    <olMap v-if="innerVisible" :parentData="parentData"></olMap>
+                </div>
+            </el-dialog>
+        </el-dialog>
 
     </div>
 </template>
 
 <script>
+ 
+import olMap from '@/components/mapOl/index.vue';
+
 export default {
     name: 'RouYiMsg',
+    components: {
+        olMap
+    },
     data() {
         return {
-            msgCount: 0,
-            dialogVisible: false
+            msgCount: 1,
+            dialogVisible: false,
+            dialogFlag: false,
+            wsSocket: null,
+            innerVisible: false,
+            msgData: [{
+                msg: "鍙樺帇鍣ㄦ晠闅�",
+                point: "POINT (112.56978672907 37.8558881392881)"
+            }],
+            parentData: null,
         }
     },
     methods: {
-        setShowMenuClick() {
+        handleClick2(row) {
+            this.$message({
+                showClose: true,
+                message: '宸插垎鍙戝埌鐩稿叧璐熻矗浜�',
+                type: 'success'
+            });
+        },
+        handleClick(row) {
+            const obj = {
+                val: row,
+                type: 'point',
+                isShow: false,
+            }
+            this.parentData = JSON.stringify([obj])
+            this.innerVisible = true
+        },
+        setShowMenuClick(res) {
+
             this.dialogVisible = true
+
+
         },
         handleClose() {
             this.dialogVisible = false
-        }
+        },
+        createSocket() {
+            this.wsSocket = new WebSocket(config.pySocket);
+            this.wsSocket.onopen = (event) => {
+                console.log('WebSocket杩炴帴鎴愬姛');
+            };
+            this.wsSocket.onmessage = (event) => {
+
+                if (event.data != "杩炴帴鎴愬姛") {
+                    const obj = JSON.parse(event.data);
+                    if (obj.mes) {
+                        this.setShowMsg(obj)
+                    }
+                }
+                // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
+            };
+        },
+        setShowMsg(res) {
+            const filter = this.msgData.filter(item => {
+                if (item.msg == res.msg && item.point == res.point) {
+                    return item;
+                }
+            })
+            if (filter.length > 0) return;
+            this.msgData.push(res)
+            this.msgCount = this.msgData.length;
+
+        },
     },
     mounted() {
-        console.log(123);
+        if (!this.wsSocket) {
+            this.createSocket();
+        }
 
     },
 }

--
Gitblit v1.9.3