Newer
Older
DH_Apicture / src / views / pictureOnMap / page / FloodControlAndDrainage / Jianceyujin / MonitoringWarningLeft / index.vue
@ZZJ ZZJ 28 days ago 3 KB 地图图标颜色
<template>
  <!-- 防汛排涝  监测预警  左侧 -->
  <div class="MonitoringWarningLeft">
    <div class="moduleBox moduleBoxLeft" v-loading="loading" element-loading-background="rgba(11, 18, 52, 0.3)">
      <EachModuleTitle title="监测预警" :isTab="false"></EachModuleTitle>
      <div class="typeList flex">
        <div
          class="flex-1 tab"
          :class="tabActive == i.value ? 'active' : ''"
          v-for="i in tabData"
          :key="i.value"
          @click="tabClickFun(i)"
        >
          {{ i.label }}
        </div>
      </div>
      <div class="h100" v-if="isPort">
        <!-- 渍水风险 -->
        <Zsfx class="" v-if="tabActive == 'Zsfx'" :atSum="atSum"></Zsfx>
        <!-- 河湖水情 -->
        <Hhsq v-if="tabActive == 'Hhsq'" :atSum="atSum"></Hhsq>
        <!-- 泵站工情 -->
        <Bzgq v-if="tabActive == 'Bzgq'" :atSum="atSum"></Bzgq>
        <!-- 管网风险 -->
        <Gwfx v-if="tabActive == 'Gwfx'" :atSum="atSum"></Gwfx>
      </div>
    </div>
  </div>
</template>
<script setup name="MonitoringWarningLeft">
import bus from '@/bus';
import { ref, reactive, onMounted } from 'vue';
import { drainageDispatchmonitorCount } from '@/api/FloodControlAndDrainage.js';
const { proxy } = getCurrentInstance();
import EachModuleTitle from '@/views/pictureOnMap/page/components/EachModuleTitle.vue';
import Zsfx from './component/Zsfx.vue';
import Hhsq from './component/Hhsq.vue';
import Bzgq from './component/Bzgq.vue';
import Gwfx from './component/Gwfx.vue';

const tabData = ref([
  {
    label: '渍水风险',
    value: 'Zsfx',
    keys: 'waterlogging',
    sum: {},
  },
  {
    label: '河湖水情',
    value: 'Hhsq',
    keys: 'lake_water_level',
    sum: {},
  },
  {
    label: '泵站工情',
    value: 'Bzgq',
    keys: 'rainPumpStation,dirtyPumpStation',
    sum: {},
  },
  {
    label: '管网风险',
    value: 'Gwfx',
    keys: 'rainwater_pipeline_quality',
    sum: {},
  },
]);
const tabActive = ref('Zsfx');
const atSum = ref({});
const events_params = {
  setHighlight: { key: 'setHighlight' },
  setLayerVisible: { key: 'setLayerVisible' },
};

const tabClickFun = item => {
  const { setLayerVisible } = events_params;
  console.log('item', item);
  atSum.value = item.sum;
  tabActive.value = item.value;
  closeAllLayer();
  item.keys && item.keys.split(',').forEach(i => bus.emit(setLayerVisible.key, { layername: i, isCheck: true }));
};

const closeAllLayer = () => {
  const { setLayerVisible, setHighlight } = events_params;
  tabData.value
    .map(i => i.keys.split(','))
    .flat()
    .filter(Boolean)
    .flat()
    .forEach(i => bus.emit(setLayerVisible.key, { layername: i, isCheck: false }));
  bus.emit(setHighlight.key, []);
};
const isPort = ref(false);
const loading = ref(false);

// 获取tab数据
function gitDataList() {
  loading.value = true;
  drainageDispatchmonitorCount().then(res => {
    console.log('获取监测预警tab数据', res);
    loading.value = false;
    isPort.value = true;
    if (res && res.code == 200) {
      tabData.value[0].sum = res.data.zsfx;
      atSum.value = res.data.zsfx;
      tabData.value[1].sum = res.data.hhsq;
      tabData.value[2].sum = res.data.bzgq;
      tabData.value[3].sum = res.data.gwfx;
    }
  });
}
onMounted(() => {
  gitDataList();
});
</script>
<style lang="scss" scoped>
.MonitoringWarningLeft {
}
</style>