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/leftNav/index.vue | 1149 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 673 insertions(+), 476 deletions(-)

diff --git a/src/components/leftNav/index.vue b/src/components/leftNav/index.vue
index 15ff06e..3febdc5 100644
--- a/src/components/leftNav/index.vue
+++ b/src/components/leftNav/index.vue
@@ -1,542 +1,739 @@
 <template>
-  <div class="left-nav">
-    <ul>
-      <li
-        v-for="(item, index) in leftNavData"
-        :key="index"
-        @click="leftNavClick(item)"
-      >
-        <img :src="item.img" alt="" />
-        <span>{{ item.label }}</span>
-      </li>
-      <li class="addIcons" @click="addIcons">
-        <!-- <img :style="[imgStyle]" :src="item.img" alt="" /> -->
-        <span>+</span>
-      </li>
-    </ul>
-  </div>
+    <div class="left-nav">
+        <ul>
+            <li v-for="(item, index) in leftNavData" :key="index" @click="leftNavClick(item)">
+                <img :src="item.img" alt />
+                <span>{{ item.label }}</span>
+            </li>
+            <li class="addIcons" @click="addIcons">
+                <!-- <img :style="[imgStyle]" :src="item.img" alt="" /> -->
+                <span>+</span>
+            </li>
+        </ul>
+    </div>
 </template>
 
 <script>
 import {
-  getLifeList,
-  getMonitorList,
-  getSceneList,
-  getWayList,
-  getTagList,
-} from "@/api/pc/leftNav/index";
-import { mapGetters } from "vuex";
+    getLifeList,
+    getMonitorList,
+    getSceneList,
+    getWayList,
+    getTagList
+} from '@/api/pc/leftNav/index'
+import { mapGetters } from 'vuex'
+
+const LeftNavLayer = {
+    leftTagLayer: null,
+    leftWayLayer: null,
+    leftSceneLayer: null,
+    leftMonitorLayer: null,
+    leftActivityLayer: null,
+    leftAedLayer: null,
+    leftParkLayer: null,
+    leftComeLayer: null
+}
+
 export default {
-  name: "leftNav",
-  computed: {
-    ...mapGetters([
-      "viewer",
-      "closeMapClick", // 关闭地图点击,防止新增标签误触
-      "addIconsLayerIconPopup", //传送关闭编辑窗口,刷新标签数据
-    ]),
-  },
-  data() {
-    return {
-      leftNavData: [
-        {
-          flag: true,
-          label: "标签",
-          img: "/img/leftnav/tag-checked.png",
-          normal: "/img/leftnav/tag.png",
-          checked: "/img/leftnav/tag-checked.png",
-          layer: "tagLayer",
-        },
-        {
-          flag: false,
-          label: "道路",
-          img: "/img/leftnav/way.png",
-          normal: "/img/leftnav/way.png",
-          checked: "/img/leftnav/way-checked.png",
-          layer: "wayLayer",
-        },
-        {
-          flag: false,
-          label: "实景",
-          img: "/img/leftnav/scene.png",
-          normal: "/img/leftnav/scene.png",
-          checked: "/img/leftnav/scene-checked.png",
-          layer: "sceneLayer",
-        },
-        {
-          flag: false,
-          label: "监控",
-          img: "/img/leftnav/monitor.png",
-          normal: "/img/leftnav/monitor.png",
-          checked: "/img/leftnav/monitor-checked.png",
-          layer: "monitorLayer",
-        },
-        // {
-        //     flag: false,
-        //     label: '活动',
-        //     img: '/img/leftnav/activity.png',
-        //     normal: '/img/leftnav/activity.png',
-        //     checked: '/img/leftnav/activity-checked.png',
-        //     layer: 'activityLayer'
-        // },
-        // {
-        //     flag: false,
-        //     label: 'AED',
-        //     img: '/img/leftnav/aed.png',
-        //     normal: '/img/leftnav/aed.png',
-        //     checked: '/img/leftnav/aed-checked.png',
-        //     layer: 'aedLayer'
-        // },
-        {
-          flag: false,
-          label: "停车",
-          img: "/img/leftnav/park.png",
-          normal: "/img/leftnav/park.png",
-          checked: "/img/leftnav/park-checked.png",
-          layer: "parkLayer",
-        },
-        {
-          flag: false,
-          label: "出入",
-          img: "/img/leftnav/come.png",
-          normal: "/img/leftnav/come.png",
-          checked: "/img/leftnav/come-checked.png",
-          layer: "comeLayer",
-        },
-      ],
-      viewer: null,
-      DC: null,
-      tagLayer: null,
-      wayLayer: null,
-      sceneLayer: null,
-      monitorLayer: null,
-      activityLayer: null,
-      aedLayer: null,
-      parkLayer: null,
-      comeLayer: null,
-    };
-  },
-  created() {
-    this.DC = global.DC;
-  },
-  mounted() {
-    //初始化新增标签图层
-    // this.$store.commit("createAddIconsLayerIconLayer", { viewer: this.viewer });
-  },
-  watch: {
-    addIconsLayerIconPopup() {
-      if (!this.addIconsLayerIconPopup) {
-        this.reself();
-      }
+    name: 'leftNav',
+    computed: {
+        ...mapGetters([
+            'closeMapClick', // 关闭地图点击,防止新增标签误触
+            'addIconsLayerIconPopup', // 传送关闭编辑窗口,刷新标签数据
+            'calenderShow',
+            'twoOrThree'
+        ])
     },
-  },
-  methods: {
-    reself() {
-      let that = this;
-      if (this.tagLayer) {
-        this.tagLayer.clear();
-      }
-      getTagList().then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
+    data () {
+        return {
+            leftNavData: [
+                {
+                    flag: true,
+                    label: '标签',
+                    img: '/img/leftnav/tag-checked.png',
+                    normal: '/img/leftnav/tag.png',
+                    checked: '/img/leftnav/tag-checked.png',
+                    layer: 'leftTagLayer'
+                },
+                {
+                    flag: false,
+                    label: '道路',
+                    img: '/img/leftnav/way.png',
+                    normal: '/img/leftnav/way.png',
+                    checked: '/img/leftnav/way-checked.png',
+                    layer: 'leftWayLayer'
+                },
+                {
+                    flag: false,
+                    label: '实景',
+                    img: '/img/leftnav/scene.png',
+                    normal: '/img/leftnav/scene.png',
+                    checked: '/img/leftnav/scene-checked.png',
+                    layer: 'leftSceneLayer'
+                },
+                // {
+                //     flag: false,
+                //     label: '监控',
+                //     img: '/img/leftnav/monitor.png',
+                //     normal: '/img/leftnav/monitor.png',
+                //     checked: '/img/leftnav/monitor-checked.png',
+                //     layer: 'leftMonitorLayer'
+                // },
+                {
+                    flag: false,
+                    label: '活动',
+                    img: '/img/leftnav/activity.png',
+                    normal: '/img/leftnav/activity.png',
+                    checked: '/img/leftnav/activity-checked.png',
+                    layer: 'leftActivityLayer'
+                },
+                // {
+                //     flag: false,
+                //     label: 'AED',
+                //     img: '/img/leftnav/aed.png',
+                //     normal: '/img/leftnav/aed.png',
+                //     checked: '/img/leftnav/aed-checked.png',
+                //     layer: 'leftAedLayer'
+                // },
+                {
+                    flag: false,
+                    label: '停车',
+                    img: '/img/leftnav/park.png',
+                    normal: '/img/leftnav/park.png',
+                    checked: '/img/leftnav/park-checked.png',
+                    layer: 'leftParkLayer'
+                },
+                {
+                    flag: false,
+                    label: '出入',
+                    img: '/img/leftnav/come.png',
+                    normal: '/img/leftnav/come.png',
+                    checked: '/img/leftnav/come-checked.png',
+                    layer: 'leftComeLayer'
+                }
+            ]
+        }
+    },
+    created () {
+    },
+    mounted () {
+        // 初始化新增标签图层
+        // this.$store.commit("createAddIconsLayerIconLayer", { viewer: global.viewer });
+    },
+    watch: {
+        addIconsLayerIconPopup () {
+            if (!this.addIconsLayerIconPopup) {
+                this.reself()
+            }
+        },
+        calenderShow: {
+            handler (newData, oldData) {
+                if (newData == false) {
+                    this.leftNavData.forEach(item => {
+                        if (item.label == '活动') {
+                            item.flag = false
+                            item.img = item.normal
+                        }
+                    })
+                }
+            },
+            immediate: true
+        },
+        twoOrThree: {
+            handler (newData, oldData) {
+                if (newData == '三 维') {
+                    for (const key in LeftNavLayer) {
+                        if (LeftNavLayer[key] != null) {
+                            LeftNavLayer[key].eachOverlay((item) => {
+                                if (item.attr.params.x && item.attr.params.x != '') {
+                                    const position = this.coordinate(item.attr.params.x)
+                                    item.position = new global.DC.Position(Number(position.lng), Number(position.lat), 0)
+                                } else {
+                                    item.position = new global.DC.Position(Number(item.position.lng), Number(item.position.lat), 0)
+                                }
+                            })
+                        }
+                    }
+                } else {
+                    for (const key in LeftNavLayer) {
+                        if (LeftNavLayer[key] != null) {
+                            LeftNavLayer[key].eachOverlay((item) => {
+                                item.position = new global.DC.Position(Number(item.attr.params.jd), Number(item.attr.params.wd), 50)
+                            })
+                        }
+                    }
+                }
+            },
+            immediate: true
+        }
+    },
+    methods: {
+        reself () {
+            const that = this
+            if (LeftNavLayer.leftTagLayer) {
+                LeftNavLayer.leftTagLayer.clear()
+            }
+
+            getTagList().then((res) => {
+                res.data.data.forEach((item) => {
+                    const divIcon = new global.DC.DivIcon(
+                        new global.DC.Position(Number(item.jd), Number(item.wd), 0),
+                        `
                         <div class="tag-entitys-box">
                             <div class="tag-content">
                                 ${item.mechanismname}
                             </div>
                             <div class="tag-angle-content">
-                                <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                <img src="/img/icon/tarrow_xq.png">
                             </div>
                         </div>
                     `
-          );
-          //订阅事件
-          divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
-            if (that.closeMapClick) {
-              return;
-            }
-            that.openPopups({
-              lng: e.overlay.position.lng,
-              lat: e.overlay.position.lat,
-              item: item,
-            });
-          });
-          this.tagLayer.addOverlay(divIcon);
-          if (!this.leftNavData[0].flag) {
-            this.tagLayer.show = false;
-          }
-        });
-      });
-    },
-    addIcons() {
-      if (this.closeMapClick) {
-        //若正在加标签,退出
-        return;
-      }
-      //加标签
-      console.log("addIcons", "see");
-      this.$store.dispatch("chouseAddIconsLayerIcon", {
-        //新增标签 选定位置
-        viewer: this.viewer,
-        fn: (lnglat) => {
-          //返回选定坐标
-          console.log(lnglat, "see");
-          //添加空白标签
-          this.$store.dispatch("addIconsLayerIcon", {
-            lnglat: lnglat,
-            viewer: this.viewer,
-          });
+                    )
+                    // 订阅事件
+                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                        if (that.closeMapClick) {
+                            return
+                        }
+                        that.openPopups({
+                            lng: e.overlay.position.lng,
+                            lat: e.overlay.position.lat,
+                            item: item
+                        })
+                    })
+                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
+                    if (!this.leftNavData[0].flag) {
+                        LeftNavLayer.leftTagLayer.show = false
+                    }
+                })
+            })
         },
-      });
-    },
-    generatePosition(num) {
-      const list = [];
-      for (let i = 0; i < num; i++) {
-        const lng = 115.86271917 + Math.random() * 0.01;
-        const lat = 28.73615593 + Math.random() * 0.02;
-        list.push(new this.DC.Position(lng, lat, 0));
-      }
-      return list;
-    },
-    leftNavClick(item) {
-      item.flag = !item.flag;
-      if (item.flag == true) {
-        item.img = item.checked;
-        this[item.layer].show = true;
-      } else {
-        item.img = item.normal;
-        this[item.layer].show = false;
-      }
-    },
-    initialize(viewer) {
-      var that = this;
-      viewer.scene.globe.depthTestAgainstTerrain = false;
-      this.viewer = viewer;
-      this.tagLayer = new this.DC.HtmlLayer("tagLayer");
-      viewer.addLayer(this.tagLayer);
-      this.wayLayer = new this.DC.HtmlLayer("wayLayer");
-      viewer.addLayer(this.wayLayer);
-      this.sceneLayer = new this.DC.HtmlLayer("sceneLayer");
-      viewer.addLayer(this.sceneLayer);
-      this.monitorLayer = new this.DC.HtmlLayer("monitorLayer");
-      viewer.addLayer(this.monitorLayer);
-      this.aedLayer = new this.DC.VectorLayer("aedLayer");
-      viewer.addLayer(this.aedLayer);
-      this.parkLayer = new this.DC.HtmlLayer("parkLayer");
-      viewer.addLayer(this.parkLayer);
-      this.comeLayer = new this.DC.VectorLayer("comeLayer");
-      viewer.addLayer(this.comeLayer);
 
-      getTagList().then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
-                        <div class="tag-entitys-box">
-                            <div class="tag-content">
-                                ${item.mechanismname}
-                            </div>
-                            <div class="tag-angle-content">
-                                <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
-                            </div>
-                        </div>
-                    `
-          );
-          //订阅事件
-          divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
-            if (that.closeMapClick) {
-              return;
+        coordinate (item) {
+            const arr = item.split(',')
+
+            return {
+                lng: arr[0],
+                lat: arr[1]
             }
-            // console.log(item, "see11111");
-            that.openPopups({
-              lng: e.overlay.position.lng,
-              lat: e.overlay.position.lat,
-              item: item,
-            });
-          });
-          this.tagLayer.addOverlay(divIcon);
-        });
-        // this.tagLayer.show = false
-      });
+        },
 
-      getWayList().then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
-                        <div  class="way-entitys-box">
-                            <div  class="way-title" style="border: white 1px solid; font-size: 0.875rem; background: #0066ff;  width: 18px; line-height: 14px; padding: 6px 2px 6px 2px; color: white; text-align: center;">
-                                 ${item.roadname}
-                            </div>
-                            <div  class="way-sign-box">
-                                <img src="https://map.hit.edu.cn/images/roadsign3.png">
-                            </div>
-                        </div>
-                    `
-          );
-          this.wayLayer.addOverlay(divIcon);
-        });
-        this.wayLayer.show = false;
-      });
+        addIcons () {
+            if (this.closeMapClick) {
+                // 若正在加标签,退出
+                return
+            }
+            // 加标签
+            this.$store.dispatch('chouseAddIconsLayerIcon', {
+                // 新增标签 选定位置
+                viewer: global.viewer,
+                fn: (lnglat) => {
+                    // 返回选定坐标
+                    // 添加空白标签
+                    this.$store.dispatch('addIconsLayerIcon', {
+                        lnglat: lnglat,
+                        viewer: global.viewer
+                    })
+                }
+            })
+        },
 
-      getMonitorList().then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
+        generatePosition (num) {
+            const list = []
+            for (let i = 0; i < num; i++) {
+                const lng = 115.86271917 + Math.random() * 0.01
+                const lat = 28.73615593 + Math.random() * 0.02
+                list.push(new global.DC.Position(lng, lat, 0))
+            }
+            return list
+        },
+
+        leftNavClick (item) {
+            item.flag = !item.flag
+            if (item.flag == true) {
+                item.img = item.checked
+            } else {
+                item.img = item.normal
+            }
+
+            if (item.label == '活动') {
+                this.$store.commit('SET_CALENDERSHOW', item.flag)
+            } else {
+                if (item.flag == true) {
+                    LeftNavLayer[item.layer].show = true
+                } else {
+                    LeftNavLayer[item.layer].show = false
+                }
+            }
+        },
+
+        initialize () {
+            var that = this
+            global.viewer.scene.globe.depthTestAgainstTerrain = false
+
+            LeftNavLayer.leftTagLayer = new global.DC.HtmlLayer('leftTagLayer')
+            global.viewer.addLayer(LeftNavLayer.leftTagLayer)
+
+            LeftNavLayer.leftWayLayer = new global.DC.HtmlLayer('leftWayLayer')
+            global.viewer.addLayer(LeftNavLayer.leftWayLayer)
+
+            LeftNavLayer.leftSceneLayer = new global.DC.HtmlLayer('leftSceneLayer')
+            global.viewer.addLayer(LeftNavLayer.leftSceneLayer)
+
+            LeftNavLayer.leftMonitorLayer = new global.DC.HtmlLayer('leftMonitorLayer')
+            global.viewer.addLayer(LeftNavLayer.leftMonitorLayer)
+
+            LeftNavLayer.leftAedLayer = new global.DC.VectorLayer('leftAedLayer')
+            global.viewer.addLayer(LeftNavLayer.leftAedLayer)
+
+            LeftNavLayer.leftParkLayer = new global.DC.HtmlLayer('leftParkLayer')
+            global.viewer.addLayer(LeftNavLayer.leftParkLayer)
+
+            LeftNavLayer.leftComeLayer = new global.DC.VectorLayer('leftComeLayer')
+            global.viewer.addLayer(LeftNavLayer.leftComeLayer)
+
+            getTagList().then((res) => {
+                res.data.data.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const 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.mechanismname}
+                                    </div>
+                                    <div class="tag-angle-content">
+                                        <img src="/img/icon/tarrow_xq.png">
+                                    </div>
+                                </div>
+                            `
+                    )
+
+                    divIcon.attr.params = item
+
+                    // 订阅事件
+                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                        if (that.closeMapClick) {
+                            return
+                        }
+
+                        if (that.twoOrThree == '三 维') {
+                            that.openPopups({
+                                lng: Number(obj.lng),
+                                lat: Number(obj.lat),
+                                item: item
+                            })
+                        } else {
+                            that.openPopups({
+                                lng: Number(item.jd),
+                                lat: Number(item.wd),
+                                item: item
+                            })
+                        }
+                        // console.log(item, "see11111");
+                    })
+                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
+                })
+                // LeftNavLayer.leftTagLayer.show = false
+            })
+
+            getWayList().then((res) => {
+                res.data.data.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const divIcon = new global.DC.DivIcon(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        `
+                                <div  class="way-entitys-box">
+                                    <div  class="way-title" style="border: white 1px solid; font-size: 0.875rem; background: #0066ff;  width: 18px; line-height: 14px; padding: 6px 2px 6px 2px; color: white; text-align: center;">
+                                        ${item.roadname}
+                                    </div>
+                                    <div  class="way-sign-box">
+                                        <img src="/img/icon/roadsign3.png">
+                                    </div>
+                                </div>
+                            `
+                    )
+
+                    divIcon.attr.params = item
+
+                    LeftNavLayer.leftWayLayer.addOverlay(divIcon)
+                })
+                LeftNavLayer.leftWayLayer.show = false
+            })
+
+            getMonitorList().then((res) => {
+                res.data.data.records.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const divIcon = new global.DC.DivIcon(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        `
                         <div class="monitor-entitys-box">
-                            <div>${item.mechanismname}</div>
+                            <div>${item.vrname}</div>
                             <img class="monitor-entitys-box" src="/img/leftnav/map-monitor.png" alt="">
                         </div>
                         `
-          );
-          divIcon.attrParams = item;
-          this.monitorLayer.addOverlay(divIcon);
+                    )
 
-          divIcon.on(that.DC.MouseEventType.CLICK, (e) => {
-            this.$store.commit("SET_PANORAMAPOPUP", false);
-            this.$store.commit("SET_DETAILSPOPUP", false);
-            this.$store.commit(
-              "SET_STATENAME",
-              e.overlay.attrParams.mechanismname
-            );
-            this.$store.commit("SET_MONITORURL", e.overlay.attrParams.videourl);
-            // eslint-disable-next-line new-cap
-            var positions = this.DC.Transform.transformWGS84ToCartesian(
-              new this.DC.Position.fromArray([
-                Number(item.jd),
-                Number(item.wd),
-                0,
-                0,
-                -90,
-                0,
-              ])
-            );
-            this.viewer.scene.globe.depthTestAgainstTerrain = false;
-            // eslint-disable-next-line no-unused-vars
-            var monitor = new this.DC.PanoramaBox(this.viewer, {
-              domId: "MonitorBox",
-              position: [positions],
-            });
+                    divIcon.attr.params = item
 
-            this.$store.commit("SET_MONITORPOPUP", true);
-          });
-        });
+                    divIcon.attrParams = item
+                    LeftNavLayer.leftMonitorLayer.addOverlay(divIcon)
 
-        this.monitorLayer.show = false;
-      });
+                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                        global.viewer.flyToPosition(
+                            new global.DC.Position(Number(item.jd), Number(item.wd), Number(300), Number(0), Number(-90), Number(0)),
+                            function () { },
+                            2
+                        )
 
-      getSceneList().then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
+                        this.$store.commit('SET_PANORAMAPOPUP', false)
+                        this.$store.commit('SET_DETAILSPOPUP', false)
+                        this.$store.commit(
+                            'SET_STATENAME',
+                            e.overlay.attrParams.vrname
+                        )
+                        this.$store.commit('SET_MONITORURL', e.overlay.attrParams.vrurl)
+                        // eslint-disable-next-line new-cap
+                        var positions = global.DC.Transform.transformWGS84ToCartesian(
+                            // eslint-disable-next-line new-cap
+                            new global.DC.Position.fromArray([
+                                Number(item.jd),
+                                Number(item.wd),
+                                0,
+                                0,
+                                -90,
+                                0
+                            ])
+                        )
+                        global.viewer.scene.globe.depthTestAgainstTerrain = false
+                        // eslint-disable-next-line no-unused-vars
+                        var monitor = new global.DC.PanoramaBox(global.viewer, {
+                            domId: 'MonitorBox',
+                            position: [positions]
+                        })
+
+                        this.$store.commit('SET_MONITORPOPUP', true)
+                    })
+                })
+
+                LeftNavLayer.leftMonitorLayer.show = false
+            })
+
+            getSceneList().then((res) => {
+                res.data.data.records.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const divIcon = new global.DC.DivIcon(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        `
                         <div class="scene-entitys-box">
-                            <div>${item.mechanismname}</div>
+                            <div>${item.vrname}</div>
                             <img src="/img/leftnav/map-panorama.png" alt="">
                         </div>
                         `
-          );
-          divIcon.attrParams = item;
-          this.sceneLayer.addOverlay(divIcon);
+                    )
 
-          divIcon.on(that.DC.MouseEventType.CLICK, (e) => {
-            this.$store.commit("SET_DETAILSPOPUP", false);
-            this.$store.commit("SET_MONITORPOPUP", false);
-            this.$store.commit(
-              "SET_STATENAME",
-              e.overlay.attrParams.mechanismname
-            );
-            this.$store.commit(
-              "SET_PANORAMAURL",
-              e.overlay.attrParams.panoramaurl
-            );
-            // eslint-disable-next-line new-cap
-            var positions = this.DC.Transform.transformWGS84ToCartesian(
-              new this.DC.Position.fromArray([
-                Number(item.jd),
-                Number(item.wd),
-                0,
-                0,
-                -90,
-                0,
-              ])
-            );
-            this.viewer.scene.globe.depthTestAgainstTerrain = false;
-            // eslint-disable-next-line no-unused-vars
-            var panorama = new this.DC.PanoramaBox(this.viewer, {
-              domId: "PanoramaBox",
-              position: [positions],
-            });
+                    divIcon.attr.params = item
 
-            this.$store.commit("SET_PANORAMAPOPUP", true);
-          });
-        });
+                    divIcon.attrParams = item
+                    LeftNavLayer.leftSceneLayer.addOverlay(divIcon)
 
-        this.sceneLayer.show = false;
-      });
+                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                        global.viewer.flyToPosition(
+                            new global.DC.Position(Number(item.jd), Number(item.wd), Number(300), Number(0), Number(-90), Number(0)),
+                            function () { },
+                            2
+                        )
 
-      getLifeList({ lifetype: 9 }).then((res) => {
-        res.data.data.forEach((item) => {
-          const label = new this.DC.Label(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            item.mechanismname
-          );
-          label.setStyle({
-            fillColor: this.DC.Color.CRIMSON,
-            style: that.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
-            outlineColor: that.DC.Color.WHITE, // 边框颜色
-            outlineWidth: 8, // 边框大小,
-            font: "14px sans-serif",
-            pixelOffset: { x: 0, y: -24 },
-          });
-          this.aedLayer.addOverlay(label);
+                        this.$store.commit('SET_DETAILSPOPUP', false)
+                        this.$store.commit('SET_MONITORPOPUP', false)
+                        this.$store.commit(
+                            'SET_STATENAME',
+                            e.overlay.attrParams.mechanvrnameismname
+                        )
+                        this.$store.commit(
+                            'SET_PANORAMAURL',
+                            e.overlay.attrParams.vrurl
+                        )
+                        // eslint-disable-next-line new-cap
+                        var positions = global.DC.Transform.transformWGS84ToCartesian(
+                            // eslint-disable-next-line new-cap
+                            new global.DC.Position.fromArray([
+                                Number(item.jd),
+                                Number(item.wd),
+                                0,
+                                0,
+                                -90,
+                                0
+                            ])
+                        )
+                        global.viewer.scene.globe.depthTestAgainstTerrain = false
+                        // eslint-disable-next-line no-unused-vars
+                        var panorama = new global.DC.PanoramaBox(global.viewer, {
+                            domId: 'PanoramaBox',
+                            position: [positions]
+                        })
 
-          const billboard = new this.DC.Billboard(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            "/img/leftnav/map-aed.png"
-          );
-          billboard.size = [20, 20];
+                        this.$store.commit('SET_PANORAMAPOPUP', true)
+                    })
+                })
 
-          this.aedLayer.addOverlay(billboard);
-        });
-        this.aedLayer.show = false;
-      });
+                LeftNavLayer.leftSceneLayer.show = false
+            })
 
-      getLifeList({ lifetype: 11 }).then((res) => {
-        res.data.data.forEach((item) => {
-          const divIcon = new this.DC.DivIcon(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            `
+            getLifeList({ lifetype: 9 }).then((res) => {
+                res.data.data.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const label = new global.DC.Label(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        item.mechanismname
+                    )
+
+                    label.setStyle({
+                        fillColor: global.DC.Color.CRIMSON,
+                        style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
+                        outlineColor: global.DC.Color.WHITE, // 边框颜色
+                        outlineWidth: 8, // 边框大小,
+                        font: '14px sans-serif',
+                        pixelOffset: { x: 0, y: -24 }
+                    })
+
+                    label.attr.params = item
+
+                    LeftNavLayer.leftAedLayer.addOverlay(label)
+
+                    const billboard = new global.DC.Billboard(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        '/img/leftnav/map-aed.png'
+                    )
+                    billboard.size = [20, 20]
+
+                    billboard.attr.params = item
+
+                    LeftNavLayer.leftAedLayer.addOverlay(billboard)
+                })
+                LeftNavLayer.leftAedLayer.show = false
+            })
+
+            getLifeList({ lifetype: 11 }).then((res) => {
+                res.data.data.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const divIcon = new global.DC.DivIcon(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        `
                         <div class="park-entitys-box">
                             <div class="park-title" alt="${item.mechanismname}">
                             </div>
                             <div class="park-sign-box">
                                 <div>
-                                    <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="${item.mechanismname}" title="${item.mechanismname}">
+                                    <img src="/img/icon/p-biao.png" width="14" height="14" alt="${item.mechanismname}" title="${item.mechanismname}">
                                 </div>
                                 <div>
-                                    <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
+                                    <img src="/img/icon/roadsign.png" width="5" height="21">
                                 </div>
                             </div>
                         </div>
                     `
-          );
-          this.parkLayer.addOverlay(divIcon);
-        });
-        this.parkLayer.show = false;
-      });
+                    )
 
-      getLifeList({ lifetype: 12 }).then((res) => {
-        res.data.data.forEach((item) => {
-          const label = new that.DC.Label(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            item.mechanismname
-          );
-          label.setStyle({
-            fillColor: that.DC.Color.FUCHSIA,
-            style: that.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
-            outlineColor: that.DC.Color.WHITE, // 边框颜色
-            outlineWidth: 8, // 边框大小,
-            font: "14px sans-serif",
-            pixelOffset: { x: 0, y: -40 },
-          });
-          that.comeLayer.addOverlay(label);
+                    divIcon.attr.params = item
 
-          const billboard = new that.DC.Billboard(
-            new that.DC.Position(Number(item.jd), Number(item.wd), 0),
-            "/img/leftnav/map-activity.png"
-          );
-          billboard.size = [20, 20];
-          billboard.setStyle({
-            pixelOffset: { x: 0, y: -16 },
-          });
+                    LeftNavLayer.leftParkLayer.addOverlay(divIcon)
+                })
+                LeftNavLayer.leftParkLayer.show = false
+            })
 
-          that.comeLayer.addOverlay(billboard);
-        });
-        this.comeLayer.show = false;
-      });
-    },
-    openPopups(value) {
-      var popup = new this.DC.DivForms(this.viewer, {
-        domId: "divFormsDomBox",
-        position: [
-          this.DC.Transform.transformWGS84ToCartesian(
-            new this.DC.Position(
-              Number(value.lng),
-              Number(value.lat),
-              Number(value.alt || 0)
-            )
-          ),
-        ],
-      });
-      // console.log(value, "see");
-      this.$store.dispatch("setOurDataInPoput", value);
-      this.$store.dispatch("pcFlyView", {
-        jd: value.lng,
-        wd: value.lat,
-        viewer: this.viewer,
-      });
-    },
-  },
-};
+            getLifeList({ lifetype: 12 }).then((res) => {
+                res.data.data.forEach((item) => {
+                    let obj = {}
+                    if (item.x && item.x != '') {
+                        const position = that.coordinate(item.x)
+                        obj = {
+                            lng: position.lng, lat: position.lat
+                        }
+                    } else {
+                        obj = {
+                            lng: item.jd, lat: item.wd
+                        }
+                    }
+
+                    const label = new global.DC.Label(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        item.mechanismname
+                    )
+                    label.setStyle({
+                        fillColor: global.DC.Color.FUCHSIA,
+                        style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
+                        outlineColor: global.DC.Color.WHITE, // 边框颜色
+                        outlineWidth: 8, // 边框大小,
+                        font: '14px sans-serif',
+                        pixelOffset: { x: 0, y: -40 }
+                    })
+
+                    label.attr.params = item
+
+                    LeftNavLayer.leftComeLayer.addOverlay(label)
+
+                    const billboard = new global.DC.Billboard(
+                        new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
+                        '/img/leftnav/map-activity.png'
+                    )
+                    billboard.size = [20, 20]
+                    billboard.setStyle({
+                        pixelOffset: { x: 0, y: -16 }
+                    })
+
+                    billboard.attr.params = item
+
+                    LeftNavLayer.leftComeLayer.addOverlay(billboard)
+                })
+                LeftNavLayer.leftComeLayer.show = false
+            })
+        },
+
+        openPopups (value) {
+            var popup = new global.DC.DivForms(global.viewer, {
+                domId: 'divFormsDomBox',
+                position: [
+                    global.DC.Transform.transformWGS84ToCartesian(
+                        new global.DC.Position(
+                            Number(value.lng),
+                            Number(value.lat),
+                            Number(value.alt || 0)
+                        )
+                    )
+                ]
+            })
+            this.$store.dispatch('setOurDataInPoput', value)
+            this.$store.dispatch('pcFlyView', {
+                jd: value.lng,
+                wd: value.lat,
+                viewer: global.viewer
+            })
+        }
+    }
+}
 </script>
 
 <style scoped lang="scss">
 .left-nav {
-  position: fixed;
-  top: 160px;
-  right: 30px;
-  // bottom: 20px;
-  // left: 0;
-  z-index: 1;
-  ul {
-    // display: flex;
-    li {
-      // margin: 0 8px;
-      margin-bottom: 12px;
-      font-weight: 400;
-      display: block;
-      width: 98px;
-      height: 33px;
-      line-height: 33px;
-      background-color: #fff;
-      border-radius: 17px;
-      text-align: center;
-      font-size: 0;
-      cursor: pointer;
+    position: fixed;
+    top: 160px;
+    right: 30px;
+    // bottom: 20px;
+    // left: 0;
+    z-index: 1;
+    ul {
+        // display: flex;
+        li {
+            // margin: 0 8px;
+            margin-bottom: 12px;
+            font-weight: 400;
+            display: block;
+            width: 98px;
+            height: 33px;
+            line-height: 33px;
+            background-color: #fff;
+            border-radius: 17px;
+            text-align: center;
+            font-size: 0;
+            cursor: pointer;
 
-      img {
-        width: 24px;
-        height: 24px;
-        vertical-align: middle;
-        margin-right: 10px;
-        image-rendering: -moz-crisp-edges;
-        image-rendering: -o-crisp-edges;
-        image-rendering: -webkit-optimize-contrast;
-        image-rendering: crisp-edges;
-        -ms-interpolation-mode: nearest-neighbor;
-      }
+            img {
+                width: 24px;
+                height: 24px;
+                vertical-align: middle;
+                margin-right: 10px;
+                image-rendering: -moz-crisp-edges;
+                image-rendering: -o-crisp-edges;
+                image-rendering: -webkit-optimize-contrast;
+                image-rendering: crisp-edges;
+                -ms-interpolation-mode: nearest-neighbor;
+            }
 
-      span {
-        display: inline-block;
-        vertical-align: middle;
-        font-size: 14px;
-        color: #2f2f2f;
-      }
+            span {
+                display: inline-block;
+                vertical-align: middle;
+                font-size: 14px;
+                color: #2f2f2f;
+            }
+        }
     }
-  }
 }
 .addIcons {
-  position: absolute;
-  top: 0;
-  left: -60px;
-  width: 50px !important;
-  span {
-    font-size: 25px !important;
-  }
+    position: absolute;
+    top: 0;
+    left: -60px;
+    width: 50px !important;
+    span {
+        font-size: 25px !important;
+    }
 }
 .avtiveAddIcons {
-  background-color: aqua;
+    background-color: aqua;
 }
 </style>

--
Gitblit v1.9.3