From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1

---
 src/components/mobileLeftNav/index.vue |  298 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 155 insertions(+), 143 deletions(-)

diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
index 136fa1c..43ae1cc 100644
--- a/src/components/mobileLeftNav/index.vue
+++ b/src/components/mobileLeftNav/index.vue
@@ -33,15 +33,16 @@
     getListcat // 出入-AED-停车场
 } from '@/api/mobile/piont/index'
 import { getListVideo } from '@/api/mobile/monitor/index'
-
-window.tagLayer = null
-window.wayLayer = null
-window.sceneLayer = null
-window.videoLayer = null
-window.activityLayer = null
-window.aedLayer = null
-window.parkLayer = null
-window.comeLayer = null
+const layers = {
+    mobileTagLayer: null,
+    wayLayer: null,
+    sceneLayer: null,
+    videoLayer: null,
+    activityLayer: null,
+    aedLayer: null,
+    parkLayer: null,
+    comeLayer: null
+}
 export default {
     name: 'mobileLeftNav',
     watch: {
@@ -63,22 +64,22 @@
             if (this.seeRight) {
                 this.leftNavData[0].flag = false
                 this.leftNavData[0].img = this.leftNavData[0].checked
-                window[this.leftNavData[0].layer].show = true
+                layers[this.leftNavData[0].layer].show = true
             } else {
                 const lnd = this.leftNavData
                 for (const k in lnd) {
-                    if (window[this.leftNavData[k].layer]._show) {
+                    if (layers[this.leftNavData[k].layer]._show) {
                         // console.log(lnd[k].label, "所有开启");
                         this.leftNavData[k].flag = false
                         this.leftNavData[k].img = this.leftNavData[k].normal
-                        window[this.leftNavData[k].layer].show = false
+                        layers[this.leftNavData[k].layer].show = false
                     }
                 }
             }
         }
     },
     computed: {
-        ...mapGetters(['iconHide', 'dimensionData', 'seeRight'])
+        ...mapGetters(['iconHide', 'dimensionData', 'seeRight', 'pinchFlag'])
     },
     data () {
         return {
@@ -97,9 +98,9 @@
                     img: '/img/leftnav/tag-checked.png',
                     normal: '/img/leftnav/tag.png',
                     checked: '/img/leftnav/tag-checked.png',
-                    layer: 'tagLayer',
+                    layer: 'mobileTagLayer',
                     methods: getListarchitecture1,
-                    imgSrc: 'https://map.hit.edu.cn/images/tarrow_xq.png'
+                    imgSrc: '/img/icon/tarrow_xq.png'
                     // imgSrc: "img/mobile/pink.png",
                 },
                 {
@@ -166,7 +167,7 @@
                     layer: 'parkLayer',
                     methods: getListcat,
                     type: 11,
-                    imgSrc: 'https://map.hit.edu.cn/images/p-biao.png'
+                    imgSrc: '/img/icon/p-biao.png'
                     // imgSrc: "img/mobile/popcorn.png",
                 },
                 {
@@ -183,7 +184,7 @@
                 }
             ]
             //   viewer: null,
-            //   tagLayer: null,
+            //   mobileTagLayer: null,
             //   wayLayer: null,
             //   sceneLayer: null,
             //   videoLayer: null,
@@ -210,24 +211,24 @@
                     // console.log(lnd[k].label, "当前点击");
                     continue
                 }
-                if (window[this.leftNavData[k].layer]._show) {
+                if (layers[this.leftNavData[k].layer]._show) {
                     // console.log(lnd[k].label, "所有开启");
                     this.leftNavData[k].flag = false
                     this.leftNavData[k].img = this.leftNavData[k].normal
-                    window[this.leftNavData[k].layer].show = false
+                    layers[this.leftNavData[k].layer].show = false
                 }
             }
 
             item.flag = !item.flag
             if (item.flag == true) {
                 item.img = item.checked
-                window[item.layer].show = true
+                layers[item.layer].show = true
                 // console.log("飞入");
                 // this.flyTo(item);
                 this.$store.dispatch('closeMobileWindowsDom') // 关闭弹窗
             } else {
                 item.img = item.normal
-                window[item.layer].show = false
+                layers[item.layer].show = false
             }
         },
         // flyTo(item) {
@@ -257,172 +258,183 @@
         //     noOpen: true,
         //   });
         // },
+        overlayClick (data, billboard, label, k, ourD) {
+            const that = this
+            billboard.on(global.DC.MouseEventType.CLICK, (e) => {
+                if (that.pinchFlag == true) {
+                    return
+                }
+                const d = {
+                    name:
+                        data[k].mechanismname ||
+                        data[k].roadname ||
+                        data[k].vrname ||
+                        (ourD.label == '监控' ? '监控' : '无显示名字'),
+                    bgImg: data[k].tpurl,
+                    video: ourD.label == '监控' ? data[k].vrurl : '',
+                    from: 'labels',
+                    introduce: data[k].introduce,
+                    panoramaurl: ourD.label == '实景' ? data[k].vrurl : ''
+                }
+                // 定制化窗体
+                that.openPopupS(
+                    e.position,
+                    [e.overlay._position._lng, e.overlay._position._lat],
+                    d
+                )
+            })
+            label.on(global.DC.MouseEventType.CLICK, (e) => {
+                if (that.pinchFlag == true) {
+                    return
+                }
+                const d = {
+                    name:
+                        data[k].mechanismname ||
+                        data[k].roadname ||
+                        (ourD.label == '监控' ? '监控' : '无显示名字'),
+                    bgImg: data[k].tpurl,
+                    video: data[k].videourl || '',
+                    from: 'labels',
+                    introduce: data[k].introduce,
+                    panoramaurl: data[k].panoramaurl
+                }
+                // 定制化窗体
+                that.openPopupS(
+                    e.position,
+                    [e.overlay._position._lng, e.overlay._position._lat],
+                    d
+                )
+            })
+        },
         initialize () {
             var that = this
             global.viewer.scene.globe.depthTestAgainstTerrain = false
-            window.tagLayer = new global.DC.HtmlLayer('tagLayer')
-            global.viewer.addLayer(tagLayer)
+            layers.mobileTagLayer = new global.DC.VectorLayer('mobileTagLayer')
+            global.viewer.addLayer(layers.mobileTagLayer)
 
-            window.wayLayer = new global.DC.HtmlLayer('wayLayer')
-            global.viewer.addLayer(wayLayer)
+            layers.wayLayer = new global.DC.VectorLayer('wayLayer')
+            global.viewer.addLayer(layers.wayLayer)
 
-            // sceneLayer = new global.DC.VectorLayer("sceneLayer");
-            window.sceneLayer = new global.DC.HtmlLayer('sceneLayer')
-            global.viewer.addLayer(sceneLayer)
+            layers.sceneLayer = new global.DC.VectorLayer('sceneLayer')
+            global.viewer.addLayer(layers.sceneLayer)
 
-            window.videoLayer = new global.DC.HtmlLayer('videoLayer')
-            global.viewer.addLayer(videoLayer)
+            layers.videoLayer = new global.DC.VectorLayer('videoLayer')
+            global.viewer.addLayer(layers.videoLayer)
 
-            // activityLayer = new global.DC.VectorLayer("activityLayer");
-            window.activityLayer = new global.DC.HtmlLayer('activityLayer')
-            global.viewer.addLayer(activityLayer)
+            layers.activityLayer = new global.DC.VectorLayer('activityLayer')
+            global.viewer.addLayer(layers.activityLayer)
 
-            // aedLayer = new global.DC.VectorLayer("aedLayer");
-            window.aedLayer = new global.DC.HtmlLayer('aedLayer')
-            global.viewer.addLayer(aedLayer)
+            layers.aedLayer = new global.DC.VectorLayer('aedLayer')
+            global.viewer.addLayer(layers.aedLayer)
 
-            window.parkLayer = new global.DC.HtmlLayer('parkLayer')
-            global.viewer.addLayer(parkLayer)
+            layers.parkLayer = new global.DC.VectorLayer('parkLayer')
+            global.viewer.addLayer(layers.parkLayer)
 
-            // comeLayer = new global.DC.VectorLayer("comeLayer");
-            window.comeLayer = new global.DC.HtmlLayer('comeLayer')
-            global.viewer.addLayer(comeLayer)
+            layers.comeLayer = new global.DC.VectorLayer('comeLayer')
+            global.viewer.addLayer(layers.comeLayer)
 
             const ourNum = that.leftNavData.length
             for (let n = 0; n < ourNum; n++) {
                 const ourD = this.leftNavData[n]
                 const d = ourD.type ? { lifetype: ourD.type } : {}
                 ourD.methods(d).then((res) => {
-                    let dom
-                    const data = res.data.data
+                    let imgUrl = null
+                    let sateName = null
+                    let data = null
+
+                    if (ourD.label == '监控' || ourD.label == '实景') {
+                        data = res.data.data.records
+                    } else {
+                        data = res.data.data
+                    }
+
                     const position = that.changePoiton(data)
                     const num = data.length
                     for (let k = 0; k < num; k++) {
+                        sateName = data[k].mechanismname
                         if (ourD.label == '标签') {
-                            dom = `
-                        <div class="tag-entitys-box">
-                            <div class="tag-content">
-                               ${data[k].mechanismname}
-                            </div>
-                            <div class="tag-angle-content">
-                                <img src="${ourD.imgSrc}">
-                            </div>
-                        </div>
-                    `
+                            imgUrl = '/img/icon/m-t.png'
                         } else if (ourD.label == '道路') {
-                            // <div  class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff;  width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
-                            //    ${data[k].mechanismname}
-                            // </div>
-                            dom = `
-                        <div  class="way-entitys-box">
-                            <div  class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff;  width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
-                                 ${data[k].roadname}
-                            </div>
-                            <div  class="way-sign-box">
-                                <img src="https://map.hit.edu.cn/images/roadsign3.png">
-                            </div>
-                        </div>
-                    `
+                            imgUrl = '/img/icon/m-w.png'
+                            sateName = data[k].roadname
                         } else if (ourD.label == '实景') {
-                            // <div  class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff;  width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
-                            //    ${data[k].mechanismname}
-                            // </div>
-                            dom = `
-                        <div class="scene-entitys-box">
-                            <div>${data[k].mechanismname}</div>
-                            <img src="/img/leftnav/map-panorama.png" alt="">
-                        </div>
-                        `
+                            imgUrl = '/img/icon/m-s.png'
+                            sateName = data[k].vrname
                         } else if (ourD.label == 'AED') {
-                            dom = `
-                        <div class="mobiletag-entitys-box">
-                            <div class="tag-content">
-                               ${data[k].mechanismname}
-                            </div>
-                            <div class="tag-angle-content">
-                                <img src="${ourD.imgSrc}">
-                            </div>
-                        </div>
-                    `
+                            imgUrl = null
                         } else if (ourD.label == '停车') {
-                            dom = `
-                        <div class="park-entitys-box">
-                            <div class="park-title" alt="${data[k].mechanismname}">
-                            </div>
-                            <div class="park-sign-box">
-                                <div>
-                                    <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="${data[k].mechanismname}" title="${data[k].mechanismname}">
-                                </div>
-                                <div>
-                                    <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
-                                </div>
-                            </div>
-                        </div>
-                    `
+                            imgUrl = '/img/icon/m-p.png'
                         } else if (ourD.label == '出入') {
-                            dom = `
-                        <div class="mobiletag-entitys-box-pink">
-                            <div class="tag-content">
-                               ${data[k].mechanismname}
-                            </div>
-                            <div class="tag-angle-content">
-                                <img src="${ourD.imgSrc}">
-                            </div>
-                        </div>
-                    `
+                            imgUrl = '/img/icon/m-c.png'
                         } else if (ourD.label == '监控') {
-                            dom = `
-                        <div class="monitor-entitys-box">
-                            <div>${data[k].mechanismname}</div>
-                            <img class="monitor-entitys-box" src="/img/leftnav/map-monitor.png" alt="">
-                        </div>
-                        `
+                            imgUrl = '/img/icon/m-v.png'
+                            sateName = data[k].vrname
                         }
-                        const divIcon = new global.DC.DivIcon(position[k], dom)
-                        // 订阅事件
-                        divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
-                            // console.log(data[k]);
-                            const d = {
-                                name:
-                                    data[k].mechanismname ||
-                                    data[k].roadname ||
-                                    (ourD.label == '监控' ? '监控' : '无显示名字'),
-                                bgImg: data[k].tpurl,
-                                video: data[k].videourl || '',
-                                from: 'labels',
-                                introduce: data[k].introduce,
-                                panoramaurl: data[k].panoramaurl
-                            }
-                            // 定制化窗体
-                            that.openPopupS(
-                                e.position,
-                                [e.overlay._position._lng, e.overlay._position._lat],
-                                d
-                            )
+
+                        const billboard = new global.DC.Billboard(position[k], imgUrl)
+
+                        const label = new global.DC.Label(
+                            position[k],
+                            sateName
+                        )
+
+                        label.setStyle({
+                            fillColor: global.DC.Color.RED,
+                            style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
+                            outlineColor: global.DC.Color.WHITE, // 边框颜色
+                            outlineWidth: 8, // 边框大小,
+                            font: '12px sans-serif',
+                            pixelOffset: { x: 0, y: -24 }
                         })
-                        window[that.leftNavData[n].layer].addOverlay(divIcon) // 加入图标
+
+                        that.overlayClick(data, billboard, label, k, ourD)
+
+                        layers[that.leftNavData[n].layer].addOverlay(billboard) // 加入图标
+                        layers[that.leftNavData[n].layer].addOverlay(label)
                     }
-                    window[that.leftNavData[n].layer].positions = position
-                    if (that.leftNavData[n].layer == 'tagLayer') {
+                    layers[that.leftNavData[n].layer].positions = position
+                    if (that.leftNavData[n].layer == 'mobileTagLayer') {
                         // that.leftNavData[n].img = that.leftNavData[n].checked;
                     } else {
-                        window[that.leftNavData[n].layer].show = false
+                        layers[that.leftNavData[n].layer].show = false
                     }
                 })
             }
             // setTimeout(() => {
-            //   this.tagLayer.show = false;
+            //   this.mobileTagLayer.show = false;
             // }, 500);
         },
+
         changePoiton (data) {
-            // console.log(data);
+            const that = this
             const list = []
             const num = data.length
             for (let i = 0; i < num; i++) {
-                list.push(new global.DC.Position(data[i].jd, data[i].wd, 0))
+                let obj = {}
+                if (data[i].x && data[i].x != '') {
+                    const position = that.coordinate(data[i].x)
+                    obj = {
+                        lng: position.lng, lat: position.lat
+                    }
+                } else {
+                    obj = {
+                        lng: data[i].jd, lat: data[i].wd
+                    }
+                }
+                list.push(new global.DC.Position(Number(obj.lng), Number(obj.lat), 0))
             }
             return list
         },
+
+        coordinate (item) {
+            const arr = item.split(',')
+
+            return {
+                lng: arr[0],
+                lat: arr[1]
+            }
+        },
+
         mobileOpenImgs1 () {
             const imgsDom = document.getElementById('mobileBigImgs')
             imgsDom.click()

--
Gitblit v1.9.3