Newer
Older
HuangJiPC / src / pages / views / WatershedOneMap / newPart / sheHuiOne.vue
@zhangdeliang zhangdeliang on 21 Jun 3 KB update
<template>
  <!-- 规划引领 阶段一靶向治理-->
  <div class="sheHuiNetOne">
    <div class="content">
      <div class="finished"></div>
    </div>
  </div>
</template>
<script>


import { toRefs, onMounted, reactive, onBeforeUnmount, nextTick, ref, } from "vue";
import Popup from "./Popup.vue";
import bus from "@/utils/util";

export default {
  name: "sheHuiNetOne",
  components: { Popup },
  setup() {
    // 设置默认选中的图例图层,false 代表打开图层
    const allData = reactive({
      checkedLegend: [
        { isCheck: false, layername: "bushui" },
        { isCheck: false, layername: "rainAndwu" },
        { isCheck: false, layername: "layer0" },
        { isCheck: false, layername: "layer3" },
        { isCheck: false, layername: "layer5" },
        { isCheck: false, layername: "layer8" },
        { isCheck: false, layername: "layer10" },
      ],
    });
    // 初始化图层
    //const pinia = useDataStore();
    async function initLayer() {
      for (let i = 0; i < 14; i++) {
        mapbox._map.on("click", "layer" + i + "_layer", function (e) {
          e.preventDefault();
          const features = mapbox._map.queryRenderedFeatures(e.point);
          // 判断是否点击当前点位
          features.map(item => {
            if (item.layer.id == "layer" + i + "_layer") {
              // 拼接显示详情内容
              bus.emit("pointToDetail", item);
            }
          })
        });
        mapbox.changeTypeOfmouse("layer" + i + "_layer")//切换鼠标样式
      }
      bus.on("pointToDetail", param => {
        mapbox.markerPopup(param, mapbox.createPopup(Popup, param.properties));
      });
    }

    onMounted(() => {
      initLayer()
      //设置初始化视角
      mapbox._map.setPitch(60).setBearing(0)
      setTimeout(() => {
        mapbox.flyto([114.265596, 30.640028], 12.5, 0.8)
      }, 300)
      // 设置默认选中的图例图层
      setTimeout(() => {
        bus.emit("showDefaultLegend", allData.checkedLegend);
      })

    });
    onBeforeUnmount(() => {
      //清空图例默认开启,true 代表关闭图层
      bus.emit("showDefaultLegend", [
        { isCheck: true, layername: "rainAndwu" },
        { isCheck: true, layername: "bushui" },
        { isCheck: true, layername: "layer0" },
        { isCheck: true, layername: "layer3" },
        { isCheck: true, layername: "layer5" },
        { isCheck: true, layername: "layer8" },
        { isCheck: true, layername: "layer10" },
      ]);
      //清除选中图层
      //!!window.timeranhan && clearInterval(window.timeranhan);
      //!!window.timerwater && clearInterval(window.timerwater);
      !!window.timertuokuan && clearInterval(window.timertuokuan);
      !!window.timerspread && clearInterval(window.timerspread);
      //!!window.timerflow && clearInterval(window.timerflow);
      !!window.timerbushui && clearInterval(window.timerbushui);
    
      //清除弹窗
      bus.off("pointToDetail");
      if (!!mapbox._popup) {
        mapbox._popup.remove()
      }
    });
    return {
      ...toRefs(allData),
      initLayer,
    };
  },
};
</script>
<style lang="less">
.sheHuiNetOne {
  .content {
    height: 735px;
    overflow: auto;
    margin: 20px 0px 50px 0px;
    padding-left: 10px;
    .finished {
      width: 410px;
      height: 1814px;
      background: url("@/assets/newImgs/finished.png") no-repeat center;
      background-size: 100% 100%;
      margin-bottom: 60px;
    }
  }
}
</style>