Newer
Older
ganzhou-feidu / src / pages / csdz / geo / index.vue
<template>
  <div>
    <div class="video-menu">
      <layer-manager :menu-tab="menuTab" :menus="menus" :select="selectIndex==='layerBtn'" @btnClick="btnClick" @menuClick="menuClick"/>
    </div>
    <div v-if="id==='CIM4'" class="cim4">
      <el-checkbox-group v-model="checkList">
        <el-checkbox
          style="display:block;margin-top: 10px;width: 200px"
          v-for="(item,index) in cim4"
          :id="item"
          :key="'layercheckbox'+ index"
          :label="item"
          @change="changeCIM4(item)"
          border/>
      </el-checkbox-group>
    </div>
  </div>
</template>

<script>
import CommonBtn from "@/components/CommonBtn";
import LayerManager from "@/components/LayerManager";
import KeywordManager from "@/components/KeywordManager";
import TimeManager from "@/components/TimeManager";
import mapJson from "@/assets/mapJson/map.json";
import { clearUpMap } from '@/utils/freedo/index'
import { eventBus } from "../../../main";
export default {
  name: 'Geo',
  components: {TimeManager, KeywordManager, LayerManager, CommonBtn },
  data() {
    return {
      cim4: [],
      checkList: [],
      ktSelect: '',
      id: '',
      selectIndex: 'layerBtn',
      menuTab: [{
        name: '地理信息数据',
        value: 'scene'
      }],
      menus: {
        scene: [
          {type: "1",typename: "CIM1地表模型",total: ""},
          {type: "2",typename: "CIM2框架模型",total: ""},
          {type: "3",typename: "CIM3标准模型",total: ""},
          {type: "4",typename: "CIM4精细模型",total: ""},
        ]
      }
    }
  },
  mounted() {
    for(let key in mapJson['CIM4']) {
      this.cim4.push(key)
    }
    this.checkList = this.cim4
  },
  methods: {
    btnClick(e) {
        this.selectIndex = e.target.id
    },
    menuClick(id) {
      id = id.typename
      clearUpMap()
      this.addCIM(id.substring(0, 4))
    },
    addCIM(id) {
      this.id = id
      switch (id) {
        case 'CIM1':
          eventBus.$emit('change-layer', { id:1, checked: true});
          eventBus.$emit('change-layer', { id:2, checked: false});
          eventBus.$emit('change-layer', { id:3, checked: false});
          eventBus.$emit('change-layer', { id:4, checked: false});
          break
        case 'CIM2':
          eventBus.$emit('change-layer', { id:2, checked: true});
          eventBus.$emit('change-layer', { id:1, checked: false});
          eventBus.$emit('change-layer', { id:3, checked: false});
          eventBus.$emit('change-layer', { id:4, checked: false});
          eventBus.$emit('change-layer', { id:5, checked: true});
          break
        case 'CIM3':
          eventBus.$emit('change-layer', { id:3, checked: true});
          eventBus.$emit('change-layer', { id:1, checked: false});
          eventBus.$emit('change-layer', { id:2, checked: false});
          eventBus.$emit('change-layer', { id:4, checked: false});
          eventBus.$emit('change-layer', { id:5, checked: true});
          break
        case 'CIM4':
          eventBus.$emit('change-layer', { id:4, checked: true});
          eventBus.$emit('change-layer', { id:1, checked: false});
          eventBus.$emit('change-layer', { id:2, checked: false});
          eventBus.$emit('change-layer', { id:3, checked: false});
          eventBus.$emit('change-layer', { id:5, checked: true});
          break
      }
    },
    changeCIM4(id) {
      const isShow = this.checkList.includes(id)
      let pModelInfos = pmtsManager.getPmts(id).pModelInfos
      for(var pModelInfo of pModelInfos) {
        let tileset = pModelInfo.pModel
        tileset.show = isShow
      }
      // console.log(window.pmtsManager)
    },
    changeState(v) {
      this.ktSelect = v
    }
  }
}
</script>

<style>
.video-menu {
  display: flex;
  z-index: 111111111;
  width: 40rem;
  height: 5rem;
  position: absolute;
  left: 20px;
  top: 1rem;
}
.cim4 {
  z-index: 111111111;
  width: 20rem;
  height: 20rem;
  position: absolute;
  left: 380px;
  top: 7.5rem;
}
.el-checkbox.is-bordered+.el-checkbox.is-bordered {
  margin-left: 0px;
}
.el-checkbox__label {
  color: white !important;
  font-size: 17px !important;
}
</style>