From 01f9c88fd0ee768155e5b341c2bb95a85bc11a08 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Sat, 05 Mar 2022 17:49:36 +0800
Subject: [PATCH] ++

---
 src/components/mobileLeftNav/index.vue |  318 +++++++++++-----------------------------------------
 1 files changed, 68 insertions(+), 250 deletions(-)

diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
index 1d8a278..20103b1 100644
--- a/src/components/mobileLeftNav/index.vue
+++ b/src/components/mobileLeftNav/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="m-left-nav" :style="[navStyle]">
+  <div :class="['m-left-nav', seeRight ? '' : 'nones']" :style="[navStyle]">
     <!-- :style="[coutrolStyle]" -->
     <div class="m-left-coutrol" @click="changeIconHide">
       <i :class="icons"></i>
@@ -9,6 +9,7 @@
         v-for="(item, index) in leftNavData"
         :key="index"
         @click="leftNavClick(item)"
+        v-show="!item.notShow"
       >
         <img :style="[imgStyle]" :src="item.img" alt="" />
         <span>{{ item.label }}</span>
@@ -43,9 +44,26 @@
         this.imgStyle.right = "0";
       }
     },
+    seeRight() {
+      if (this.seeRight) {
+        this.leftNavData[0].flag = false;
+        this.leftNavData[0].img = this.leftNavData[0].checked;
+        this[this.leftNavData[0].layer].show = true;
+      } else {
+        let lnd = this.leftNavData;
+        for (let k in lnd) {
+          if (this[this.leftNavData[k].layer]._show) {
+            // console.log(lnd[k].label, "所有开启");
+            this.leftNavData[k].flag = false;
+            this.leftNavData[k].img = this.leftNavData[k].normal;
+            this[this.leftNavData[k].layer].show = false;
+          }
+        }
+      }
+    },
   },
   computed: {
-    ...mapGetters(["iconHide"]),
+    ...mapGetters(["iconHide", "dimensionData", "seeRight"]),
   },
   data() {
     return {
@@ -56,25 +74,12 @@
       imgStyle: {
         right: "0",
       },
-      //   coutrolStyle: {
-      //     position: " absolute",
-      //     left: "-26px",
-      //     top: "114px",
-      //     right: "auto",
-      //     width: "25px",
-      //     height: "60px",
-      //     backgroundColor: "#fff",
-      //     borderRadius: "10px",
-      //     display: "flex",
-      //     alignItems: "center",
-      //     justifyContent: "center",
-      //     transition: "left 3s",
-      //   },
       leftNavData: [
         {
-          flag: false,
+          flag: true,
           label: "标签",
-          img: "/img/leftnav/tag.png",
+          // img: "/img/leftnav/tag.png",
+          img: "/img/leftnav/tag-checked.png",
           normal: "/img/leftnav/tag.png",
           checked: "/img/leftnav/tag-checked.png",
           layer: "tagLayer",
@@ -111,7 +116,7 @@
           checked: "/img/leftnav/monitor-checked.png",
           layer: "videoLayer",
           methods: getListVideo,
-          imgSrc: "img/leftnav/map-panorama.png",
+          imgSrc: "/img/leftnav/map-monitor.png",
           // imgSrc: "img/mobile/blue.png",
         },
         // {
@@ -135,6 +140,7 @@
           type: 9,
           imgSrc: "img/leftnav/map-aed.png",
           // imgSrc: "img/mobile/pink.png",
+          notShow: true,
         },
         {
           flag: false,
@@ -182,16 +188,8 @@
       let isif = this.iconHide;
       this.$store.commit("MSET_ICONHIDE", !isif);
     },
-    generatePosition(num) {
-      const list = [];
-      for (let i = 0; i < num; i++) {
-        const lng = 121.0493 + Math.random() * 0.5;
-        const lat = 31.2583 + Math.random() * 0.5;
-        list.push(new this.DC.Position(lng, lat, 0));
-      }
-      return list;
-    },
     leftNavClick(item) {
+      // console.log(123132);
       //判断并关闭已开启标签
       let lnd = this.leftNavData;
       for (let k in lnd) {
@@ -213,7 +211,7 @@
         item.img = item.checked;
         this[item.layer].show = true;
         // console.log("飞入");
-        this.flyTo(item);
+        // this.flyTo(item);
         this.$store.dispatch("closeMobileWindowsDom"); //关闭弹窗
       } else {
         item.img = item.normal;
@@ -221,16 +219,29 @@
       }
     },
     flyTo(item) {
+      let that = this;
       let posi = this[item.layer].positions[0];
       // console.log(posi);
+      let lntLat =
+        that.dimensionData.pitch == -45
+          ? [posi.lng + 0.00917, posi.lat - 0.0188, 500]
+          : [posi.lng + 0.01197, posi.lat - 0.00055, 500];
+      // that.mviewer.camera.flyTo({
+      //   destination: Cesium.Cartesian3.fromDegrees(
+      //     lntLat[0],
+      //     lntLat[1],
+      //     lntLat[2]
+      //   ),
+      // });
+      // return;
       this.$store.dispatch("mapFlyTo", {
         //飞入
-        lntLat: [posi.lng + 0.00917, posi.lat - 0.0188, 2100],
+        lntLat: lntLat,
         // lntLat: [posi.lng + 0.01187, posi.lat - 0.0308, 4000],
         // lntLat: [121.50492752204283, 31.21567802276832, 2530],
-        heading: 0,
-        pitch: -45,
-        roll: 0,
+        heading: that.dimensionData.heading,
+        pitch: that.dimensionData.pitch,
+        roll: that.dimensionData.roll,
         noOpen: true,
       });
     },
@@ -266,203 +277,6 @@
       this.comeLayer = new this.DC.HtmlLayer("comeLayer");
       viewer.addLayer(this.comeLayer);
 
-      // const positions1 = this.generatePosition(4);
-      // positions1.forEach((item, index) => {
-      //   const divIcon = new this.DC.DivIcon(
-      //     item,
-      //     `
-      //                   <div class="tag-entitys-box">
-      //                       <div class="tag-content">
-      //                           南门口
-      //                       </div>
-      //                       <div class="tag-angle-content">
-      //                           <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
-      //                       </div>
-      //                   </div>
-      //               `
-      //   );
-      //   //  e.overlay._position._lng,
-      //   //       e.overlay._position._lat - 0.012,
-      //   //订阅事件1
-      //   divIcon.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.overlay._position._lng, e.overlay._position._lat],
-      //       { name: "标签" }
-      //     );
-      //   });
-      //   this.tagLayer.addOverlay(divIcon); //标签
-      // });
-      // this.tagLayer["positions"] = positions1;
-
-      // const positions2 = this.generatePosition(50);
-      // positions2.forEach((item, index) => {
-      //   const divIcon = new this.DC.DivIcon(
-      //     item,
-      //     `
-      //                   <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;">
-      //                           工建街
-      //                       </div>
-      //                       <div  class="way-sign-box">
-      //                           <img src="https://map.hit.edu.cn/images/roadsign3.png">
-      //                       </div>
-      //                   </div>
-      //               `
-      //   );
-      //   //订阅事件2
-      //   divIcon.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.overlay._position._lng, e.overlay._position._lat],
-      //       { name: "道路" }
-      //     );
-      //   });
-      //   this.wayLayer.addOverlay(divIcon); //道路
-      // });
-      // this.wayLayer["positions"] = positions2;
-
-      // const positions3 = this.generatePosition(50);
-      // positions3.forEach((item) => {
-      //   const billboard = new this.DC.Billboard(
-      //     item,
-      //     "/img/leftnav/map-panorama.png"
-      //   );
-      //   billboard.size = [16, 16];
-      //   //订阅事件3
-      //   billboard.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.wgs84Position.lng, e.wgs84Position.lat],
-      //       { name: "实景" }
-      //     );
-      //   });
-      //   this.sceneLayer.addOverlay(billboard); //实景
-      // });
-      // this.sceneLayer["positions"] = positions3;
-
-      // const positions10 = this.generatePosition(50);
-      // positions10.forEach((item) => {
-      //   const label = new this.DC.Label(item, "活动");
-      //   label.setStyle({
-      //     fillColor: this.DC.Color.ORANGERED,
-      //     font: "10px sans-serif",
-      //     pixelOffset: { x: 0, y: -16 },
-      //   });
-      //   this.activityLayer.addOverlay(label);
-
-      //   const billboard = new this.DC.Billboard(
-      //     item,
-      //     "/img/leftnav/map-aed.png"
-      //     // "/img/leftnav/map-panorama.png"
-      //   );
-      //   billboard.size = [16, 16];
-      //   //订阅事件10
-      //   billboard.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.wgs84Position.lng, e.wgs84Position.lat],
-      //       { name: "活动" }
-      //     );
-      //   });
-      //   this.activityLayer.addOverlay(billboard); //活动
-      // });
-      // this.activityLayer["positions"] = positions10;
-
-      // const positions4 = this.generatePosition(10);
-      // positions4.forEach((item, index) => {
-      //   const label = new this.DC.Label(item, "建筑AED");
-      //   label.setStyle({
-      //     fillColor: this.DC.Color.ORANGERED,
-      //     font: "10px sans-serif",
-      //     pixelOffset: { x: 0, y: -16 },
-      //   });
-      //   this.aedLayer.addOverlay(label);
-
-      //   const billboard = new this.DC.Billboard(
-      //     item,
-      //     "/img/leftnav/map-aed.png"
-      //   );
-      //   billboard.size = [16, 16];
-      //   //订阅事件4
-      //   billboard.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.wgs84Position.lng, e.wgs84Position.lat],
-      //       { name: "建筑AED" }
-      //     );
-      //   });
-      //   this.aedLayer.addOverlay(billboard); //AED
-      // });
-      // this.aedLayer["positions"] = positions4;
-
-      // const positions5 = this.generatePosition(120);
-      // positions5.forEach((item, index) => {
-      //   const divIcon = new this.DC.DivIcon(
-      //     item,
-      //     `
-      //                   <div class="park-entitys-box">
-      //                       <div class="park-title" alt="校外街路侧停车场">
-      //                       </div>
-      //                       <div class="park-sign-box">
-      //                           <div>
-      //                               <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="校外街路侧停车场" title="校外街路侧停车场">
-      //                           </div>
-      //                           <div>
-      //                               <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
-      //                           </div>
-      //                       </div>
-      //                   </div>
-      //               `
-      //   );
-      //   //订阅事件5
-      //   divIcon.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.overlay._position._lng, e.overlay._position._lat],
-      //       { name: "校外街路侧停车场" }
-      //     );
-      //   });
-      //   this.parkLayer.addOverlay(divIcon);
-      // });
-      // this.parkLayer["positions"] = positions5;
-
-      // const positions6 = this.generatePosition(10);
-
-      // positions6.forEach((item, index) => {
-      //   const label = new this.DC.Label(item, "123");
-      //   label.setStyle({
-      //     fillColor: this.DC.Color.PURPLE,
-      //     outlineColor: this.DC.Color.WHITE, // 边框颜色
-      //     outlineWidth: 2, // 边框大小,
-      //     font: "10px sans-serif",
-      //     pixelOffset: { x: 0, y: -16 },
-      //   });
-      //   this.comeLayer.addOverlay(label);
-
-      //   const billboard = new this.DC.Billboard(
-      //     item,
-      //     "/img/leftnav/map-activity.png"
-      //   );
-      //   billboard.size = [16, 16];
-      //   //订阅事件6
-      //   billboard.on(DC.MouseEventType.CLICK, (e) => {
-      //     // 定制化窗体
-      //     that.openPopupS(
-      //       e.position,
-      //       [e.wgs84Position.lng, e.wgs84Position.lat],
-      //       { name: "123" }
-      //     );
-      //   });
-      //   this.comeLayer.addOverlay(billboard); //出入
-      // });
-      // this.comeLayer["positions"] = positions6;
       let ourNum = that.leftNavData.length;
       for (let n = 0; n < ourNum; n++) {
         let ourD = this.leftNavData[n];
@@ -491,7 +305,7 @@
               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}
+                                 ${data[k].roadname}
                             </div>
                             <div  class="way-sign-box">
                                 <img src="https://map.hit.edu.cn/images/roadsign3.png">
@@ -503,12 +317,11 @@
               //    ${data[k].mechanismname}
               // </div>
               dom = `
-                        <div  class="way-entitys-box mobile-way-entitys-box">
-                            <div  class="way-sign-box ">
-                                <img src="img/leftnav/map-panorama.png">
-                            </div>
+                        <div class="scene-entitys-box">
+                            <div>${data[k].mechanismname}</div>
+                            <img src="/img/leftnav/map-panorama.png" alt="">
                         </div>
-                    `;
+                        `;
             } else if (ourD.label == "AED") {
               dom = `
                         <div class="mobiletag-entitys-box">
@@ -548,15 +361,11 @@
                     `;
             } else if (ourD.label == "监控") {
               dom = `
-                        <div class="mobiletag-entitys-box-pink">
-                            <div class="tag-content">
-                              监控
-                            </div>
-                            <div class="tag-angle-content">
-                                <img src="${ourD.imgSrc}">
-                            </div>
+                        <div class="monitor-entitys-box">
+                            <div>${data[k].mechanismname}</div>
+                            <img class="monitor-entitys-box" src="/img/leftnav/map-monitor.png" alt="">
                         </div>
-                    `;
+                        `;
             }
             const divIcon = new that.DC.DivIcon(position[k], dom);
             //订阅事件
@@ -566,13 +375,12 @@
                 name:
                   data[k].mechanismname ||
                   data[k].roadname ||
-                  ourD.label == "监控"
-                    ? "监控"
-                    : "无显示名字",
+                  (ourD.label == "监控" ? "监控" : "无显示名字"),
                 bgImg: data[k].tpurl,
                 video: data[k].videourl || "",
                 from: "labels",
                 introduce: data[k].introduce,
+                panoramaurl: data[k].panoramaurl,
               };
               // 定制化窗体
               that.openPopupS(
@@ -584,9 +392,16 @@
             that[that.leftNavData[n].layer].addOverlay(divIcon); //加入图标
           }
           that[that.leftNavData[n].layer]["positions"] = position;
-          that[that.leftNavData[n].layer].show = false;
+          if (that.leftNavData[n].layer == "tagLayer") {
+            // that.leftNavData[n].img = that.leftNavData[n].checked;
+          } else {
+            that[that.leftNavData[n].layer].show = false;
+          }
         });
       }
+      // setTimeout(() => {
+      //   this.tagLayer.show = false;
+      // }, 500);
     },
     changePoiton(data) {
       // console.log(data);
@@ -617,7 +432,7 @@
 };
 </script>
 
-<style scoped lang='scss'>
+<style scoped lang="scss">
 .m-left-nav {
   position: fixed;
   bottom: 30px;
@@ -629,7 +444,7 @@
   .m-left-coutrol {
     position: absolute;
     left: -24px;
-    top: 96px;
+    top: 79px;
     width: 25px;
     height: 60px;
     background-color: #fff;
@@ -677,4 +492,7 @@
     }
   }
 }
+.nones {
+  display: none;
+}
 </style>

--
Gitblit v1.9.3