1
mayisheng
2022-08-15 81f54040c2cb65537c6c6e1db8358a39a57dea0d
src/components/mobileActivity/index.vue
@@ -1,4 +1,7 @@
<template>
  <!-- 活动弹窗
mobileActivity
 -->
  <div
    id="mobileActivity"
    :style="{ height: height + 'px' }"
@@ -68,6 +71,7 @@
import moveWindow from "./move";
import { getdetail } from "@/api/mobile/hd/hd";
window.serviceMapSee = {};
window.onceServiceMap = null;
export default {
  name: "mobileActivity",
  computed: {
@@ -155,6 +159,7 @@
    //       this.height = this.useHeight;
    //     }
    //   },
    //当弹窗显示时,开始操作数据
    showActivity() {
      if (this.showActivity) {
        this.inToInit(); // 初始化
@@ -213,6 +218,17 @@
          //获取详细信息,来获取底图
          // console.log(this.showActivityData, "see");
          that.serviceMap = [];
          // if (that.serviceMap.length > 0) {
          //   for (let k in window.serviceMapSee) {
          //     if (window.serviceMapSee[k].flag) {
          //       global.viewer.imageryLayers.remove(
          //         window.serviceMapSee[k].layer
          //       );
          //     }
          //   }
          // }
          //处理底图
          window.serviceMapSee = {};
          getdetail(this.showActivityData.opendata.id).then((res) => {
            let name = res.data.data.mapname.split(",");
            let url = res.data.data.url.split(",");
@@ -220,40 +236,43 @@
              let d = {
                flag: true,
                label: name[k],
                img: "/img/leftnav/way-checked.png",
                normal: "/img/leftnav/way.png",
                checked: "/img/leftnav/way-checked.png",
                layer: "wayLayer",
                imgSrc: "img/mobile/green.png",
                img: "/img/leftnav/monitor-checked.png",
                normal: "/img/leftnav/monitor.png",
                checked: "/img/leftnav/monitor-checked.png",
                imgSrc: "/img/leftnav/map-monitor.png",
                layer: "serviceMap" + that.serviceMap.length,
                url: url[k],
                to: "serviceMap",
              };
              // this.leftNavData.shift(d);
              this.serviceMap.push(d); //数据层
              // console.log(d, "see");
              // that.serviceMap.push(d);
              // window.serviceMapSee[d.layer] =
              //   global.DC.ImageryLayerFactory.createArcGisImageryLayer({
              //     url: url[k],
              //   });
              // global.viewer.addBaseLayer(window.serviceMapSee[d.layer], {
              //   iconUrl: "examples/images/icon/elec.png",
              //   name: d.layer,
              // });
            }
            // const baselayer_shaded =
            //   global.DC.ImageryLayerFactory.createArcGisImageryLayer({
            //     url: "https://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer",
            //   });
            // global.viewer.addBaseLayer(baselayer_shaded, {
            //   iconUrl: "examples/images/icon/elec.png",
            //   name: "电子",
            // });
            // console.log(window.serviceMapSee, "see");
            // }
              window.onceServiceMap =
                new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
                  url: url[k],
                });
              window.serviceMapSee[d.layer] = {
                flag: true,
                layer: global.viewer.imageryLayers.addImageryProvider(
                  window.onceServiceMap
                ), //渲染层
                source: window.onceServiceMap, //渲染源
              };
              window.onceServiceMap = null;
            }
          });
        };
      } else {
        // console.log(this.showActivity, "see");
        if (window.serviceMapSee != {}) {
          for (let k in window.serviceMapSee) {
            if (window.serviceMapSee[k].flag) {
              //如果是显示状态 就让他关闭
              global.viewer.imageryLayers.remove(window.serviceMapSee[k].layer);
            }
          }
          window.serviceMapSee = {};
        }
      }
    },
  },
@@ -335,7 +354,23 @@
        item.img = item.normal;
      }
      if (item.to == "serviceMap") {
        console.log(item);
        //再次判断是否是底图的加载
        console.log(window.serviceMapSee[item.layer]);
        //清除
        if (!item.flag && window.serviceMapSee[item.layer].flag) {
          window.serviceMapSee[item.layer].flag = false;
          global.viewer.imageryLayers.remove(
            window.serviceMapSee[item.layer].layer
          );
        }
        // 显示
        if (item.flag && !window.serviceMapSee[item.layer].flag) {
          window.serviceMapSee[item.layer].flag = true;
          window.serviceMapSee[item.layer].layer =
            global.viewer.imageryLayers.addImageryProvider(
              window.serviceMapSee[item.layer].source
            );
        }
        return;
      }
      this.$store.commit("showLineOrPoint", {