Newer
Older
KaiFengPC / src / views / sponeScreen / evaluationKH / index.vue
@zhangdeliang zhangdeliang 15 days ago 3 KB update
<template>
  <!-- 海绵综合一张图 考核评估 -->
  <div class="oneMapKHPG">
    <!-- 左侧 -->
    <div :class="['publicLeftHM', 'animate__animated', showPanel ? 'animate__fadeOutLeft' : 'animate__fadeInLeft']">
      <chanChuJiXiao></chanChuJiXiao>
      <yuShuiZiYuanHua></yuShuiZiYuanHua>
      <keTouShuiMianJi></keTouShuiMianJi>
    </div>

    <!-- 中间 -->
    <div :class="['headHMA', 'animate__animated', showPanel ? 'animate__fadeOutUp' : 'animate__fadeInDown']">
      <jiZhiJianShe></jiZhiJianShe>
      <ganZhiRenKeDu></ganZhiRenKeDu>
    </div>

    <!-- 右侧 -->
    <div :class="['publicRightHM', 'animate__animated', showPanel ? 'animate__fadeOutRight' : 'animate__fadeInRight']">
      <heiChouShuiTi></heiChouShuiTi>
      <xiangMuJianShe></xiangMuJianShe>
      <ziJinJiXiao></ziJinJiXiao>
    </div>
  </div>
</template>

<script setup>
import jiZhiJianShe from './jiZhiJianShe'; //管理绩效评价
import ganZhiRenKeDu from './ganZhiRenKeDu'; //感知认可度考核评估
import chanChuJiXiao from './chanChuJiXiao'; //产出绩效
import yuShuiZiYuanHua from './yuShuiZiYuanHua'; //雨水资源化利用
import keTouShuiMianJi from './keTouShuiMianJi'; //可透水面积
import heiChouShuiTi from './heiChouShuiTi'; //黑臭水体
import xiangMuJianShe from './xiangMuJianShe'; //项目建设完成情况
import ziJinJiXiao from './ziJinJiXiao'; //资金绩效评价
import bus from '@/bus';
import newfiberMapBoxVectorLayer from '@/views/sponeScreen/gisMF/mapboxVectorLayer.js';

const { proxy } = getCurrentInstance();
const showPanel = ref(true); //面板展开收起

// 面板内容展开收起控制
const props = defineProps({
  showPanel: {
    type: Boolean,
  },
});
watch(
  () => props.showPanel,
  () => {
    showPanel.value = props.showPanel;
  },
  { immediate: true }
);

//删除图层
const removeSelectedLayer = () => {
  // json图层
  let layerList = ['kaifengFangHong', 'kaifengRainUse', 'kaifengTouShuiArea', 'kaifengNatureWater', 'kaifengShengHuoWS', 'kaifengBOD'];
  layerList.forEach(element => {
    if (newfiberMapbox.map.hasImage(element)) {
      newfiberMapbox.map.removeImage(element);
      newfiberMapBoxVectorLayer.removeByIds([element]);
    }
  });
  // 黑臭水体的图层
  if (newfiberMapbox.map.getLayer('waterLine')) {
    newfiberMapbox.map.removeLayer('waterLine');
    newfiberMapbox.map.removeLayer('waterLabel');
    newfiberMapbox.map.removeSource('waterLine');
    newfiberMapbox.map.removeSource('waterLabel');
  }
  // 内涝消除积水点图层清除
  if (newfiberMapbox.popupService.popups.length > 0) {
    newfiberMapbox.popupService.popups.forEach(popup => {
      nextTick(() => {
        newfiberMapbox.removePopup(popup);
      });
    });
  }
  if (newfiberMapbox.map.getLayer('waterLoging')) {
    newfiberMapbox.map.removeLayer('waterLoging');
    newfiberMapbox.map.removeSource('waterLoging');
  }

  // 内涝防治标准
  newfiberMapBoxVectorLayer.removeByIds(['builtCity', 'moduleFloodBoundary', 'moduleFloodlabel', 'moduleFlood']);
};

onMounted(() => {
  // 清除图层
  bus.on('removeKHLayer', () => {
    removeSelectedLayer();
  });
});
onBeforeUnmount(() => {
  removeSelectedLayer(['kaifengFangHong', 'kaifengRainUse']);
  bus.off('removeKHLayer');
});
</script>

<style lang="scss" scoped>
.oneMapKHPG {
  width: 100%;
  .headHMA {
    border-radius: 8px;
    top: 0px;
    height: auto;
    padding: 10px;
    display: flex;
    background: none;
  }
}
</style>