From 58060e64e1fa9cf3ffcf5e29f09c4c2edf8f2126 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 21 Jul 2022 17:25:34 +0800
Subject: [PATCH] 数据显示更换

---
 src/components/orgNavBar/index.vue |  149 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 136 insertions(+), 13 deletions(-)

diff --git a/src/components/orgNavBar/index.vue b/src/components/orgNavBar/index.vue
index 99e1e32..e27987b 100644
--- a/src/components/orgNavBar/index.vue
+++ b/src/components/orgNavBar/index.vue
@@ -52,7 +52,8 @@
             // 全景地址
             'panoramaUrl',
             'orgNavBarList',
-            'orgNavBarTitle'
+            'orgNavBarTitle',
+            'twoOrThree'
         ])
     },
     watch: {
@@ -63,9 +64,23 @@
                     global.viewer.addLayer(currentOrgLayer)
 
                     newData.forEach((item, index) => {
-                        const divIcon = new global.DC.DivIcon(
-                            new global.DC.Position(Number(item.longitude), Number(item.latitude), 0),
-                            `
+                        let obj = {}
+                        if (item.x && item.x != '') {
+                            const position = this.coordinate(item.x)
+                            obj = {
+                                lng: position.lng, lat: position.lat
+                            }
+                        } else {
+                            obj = {
+                                lng: item.longitude, lat: item.latitude
+                            }
+                        }
+
+                        let divIcon = null
+                        if (this.twoOrThree == '三 维') {
+                            divIcon = new global.DC.DivIcon(
+                                new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                                `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">
                                         ${item.navTitle}
@@ -75,9 +90,26 @@
                                     </div>
                                 </div>
                             `
-                        )
+                            )
+                        } else {
+                            divIcon = new global.DC.DivIcon(
+                                new global.DC.Position(Number(item.longitude), Number(item.latitude), 150),
+                                `
+                                <div class="tag-entitys-box">
+                                    <div class="tag-content">
+                                        ${item.navTitle}
+                                    </div>
+                                    <div class="tag-angle-content">
+                                        <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                    </div>
+                                </div>
+                            `
+                            )
+                        }
 
                         divIcon.attr.name = item.navTitle
+
+                        divIcon.attr.params = item
 
                         currentOrgLayer.addOverlay(divIcon)
                     })
@@ -86,9 +118,37 @@
                 }
             },
             immediate: true
+        },
+        twoOrThree: {
+            handler (newData, oldData) {
+                if (newData == '三 维') {
+                    if (currentOrgLayer != null) {
+                        currentOrgLayer.eachOverlay((item) => {
+                            const position = this.coordinate(item.attr.params.x)
+                            item.position = new global.DC.Position(Number(position.lng), Number(position.lat), 0)
+                        })
+                    }
+                } else {
+                    if (currentOrgLayer != null) {
+                        currentOrgLayer.eachOverlay((item) => {
+                            item.position = new global.DC.Position(Number(item.position.lng), Number(item.position.lat), 150)
+                        })
+                    }
+                }
+            },
+            immediate: true
         }
     },
     methods: {
+        coordinate (item) {
+            const arr = item.split(',')
+
+            return {
+                lng: arr[0],
+                lat: arr[1]
+            }
+        },
+
         removeLayer () {
             if (currentOrgLayer != null) {
                 global.viewer.removeLayer(currentOrgLayer)
@@ -170,14 +230,31 @@
             this.$store.commit('SET_MONITORPOPUP', false)
             this.removeLayer()
         },
+
         flickerStart (param, name) {
             const layerIcon = currentOrgLayer.getOverlaysByAttr('name', name)
 
             currentOrgLayer.removeOverlay(layerIcon[0])
 
-            const divIcon = new global.DC.DivIcon(
-                new global.DC.Position(Number(param.longitude), Number(param.latitude), 0),
-                `
+            let divIcon = null
+
+            let obj = {}
+
+            if (param.x && param.x != '') {
+                const position = this.coordinate(param.x)
+                obj = {
+                    lng: position.lng, lat: position.lat
+                }
+            } else {
+                obj = {
+                    lng: param.longitude, lat: param.latitude
+                }
+            }
+
+            if (this.twoOrThree == '三 维') {
+                divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                    `
                                 <div class="tag-entitys-box layer-entity-animation">
                                     <div class="tag-content">
                                         ${param.navTitle}
@@ -187,20 +264,51 @@
                                     </div>
                                 </div>
                             `
-            )
+                )
+            } else {
+                divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 150),
+                    `
+                                <div class="tag-entitys-box layer-entity-animation">
+                                    <div class="tag-content">
+                                        ${param.navTitle}
+                                    </div>
+                                    <div class="tag-angle-content">
+                                        <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                    </div>
+                                </div>
+                            `
+                )
+            }
 
             divIcon.attr.name = param.navTitle
 
             currentOrgLayer.addOverlay(divIcon)
         },
+
         flickerEnd (param, name) {
             const layerIcon = currentOrgLayer.getOverlaysByAttr('name', name)
 
             currentOrgLayer.removeOverlay(layerIcon[0])
 
-            const divIcon = new global.DC.DivIcon(
-                new global.DC.Position(Number(param.longitude), Number(param.latitude), 0),
-                `
+            let divIcon = null
+
+            let obj = {}
+
+            if (param.x && param.x != '') {
+                const position = this.coordinate(param.x)
+                obj = {
+                    lng: position.lng, lat: position.lat
+                }
+            } else {
+                obj = {
+                    lng: param.longitude, lat: param.latitude
+                }
+            }
+            if (this.twoOrThree == '三 维') {
+                divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                    `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">
                                         ${param.navTitle}
@@ -210,7 +318,22 @@
                                     </div>
                                 </div>
                             `
-            )
+                )
+            } else {
+                divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 150),
+                    `
+                                <div class="tag-entitys-box">
+                                    <div class="tag-content">
+                                        ${param.navTitle}
+                                    </div>
+                                    <div class="tag-angle-content">
+                                        <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                    </div>
+                                </div>
+                            `
+                )
+            }
 
             divIcon.attr.name = param.navTitle
 

--
Gitblit v1.9.3