|  | @@ -15,96 +15,106 @@
 | 
	
		
			
				|  |  |      </a-dropdown> -->
 | 
	
		
			
				|  |  |      <!-- 采用定位方式以避免出现各个模块隐藏时其他模块下移的问题 -->
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    <template v-if="isOriginal">
 | 
	
		
			
				|  |  | -      <ModuleOriginal
 | 
	
		
			
				|  |  | -        v-for="cfg in configs"
 | 
	
		
			
				|  |  | -        :key="cfg.deviceType"
 | 
	
		
			
				|  |  | -        :show-style="cfg.showStyle"
 | 
	
		
			
				|  |  | -        :module-data="cfg.moduleData"
 | 
	
		
			
				|  |  | -        :module-name="cfg.moduleName"
 | 
	
		
			
				|  |  | -        :device-type="cfg.deviceType"
 | 
	
		
			
				|  |  | -        :visible="true"
 | 
	
		
			
				|  |  | -      />
 | 
	
		
			
				|  |  | -    </template>
 | 
	
		
			
				|  |  | -    <template v-else-if="isCommon">
 | 
	
		
			
				|  |  | -      <ModuleCommon
 | 
	
		
			
				|  |  | -        v-for="cfg in configs"
 | 
	
		
			
				|  |  | -        :key="cfg.deviceType"
 | 
	
		
			
				|  |  | -        :show-style="cfg.showStyle"
 | 
	
		
			
				|  |  | -        :module-data="cfg.moduleData"
 | 
	
		
			
				|  |  | -        :module-name="cfg.moduleName"
 | 
	
		
			
				|  |  | -        :device-type="cfg.deviceType"
 | 
	
		
			
				|  |  | -        :visible="true"
 | 
	
		
			
				|  |  | -      />
 | 
	
		
			
				|  |  | -    </template>
 | 
	
		
			
				|  |  | -    <template v-else>
 | 
	
		
			
				|  |  | -      <!-- 下面是正常展示的各新版模块 -->
 | 
	
		
			
				|  |  | -      <ModuleEnhanced
 | 
	
		
			
				|  |  | -        v-for="cfg in enhancedConfigs"
 | 
	
		
			
				|  |  | -        :key="cfg.deviceType"
 | 
	
		
			
				|  |  | -        :visible="cfg.visible"
 | 
	
		
			
				|  |  | -        :show-style="cfg.showStyle"
 | 
	
		
			
				|  |  | -        :module-data="cfg.moduleData"
 | 
	
		
			
				|  |  | -        :module-name="cfg.moduleName"
 | 
	
		
			
				|  |  | -        :device-type="cfg.deviceType"
 | 
	
		
			
				|  |  | -        @close="cfg.visible = false"
 | 
	
		
			
				|  |  | -      />
 | 
	
		
			
				|  |  | -      <!-- 下面是用于呼出已隐藏的模块的按钮 -->
 | 
	
		
			
				|  |  | -      <div class="pos-absolute top-70px left-460px">
 | 
	
		
			
				|  |  | -        <div v-for="(item, i) in hiddenList" :key="`vvhchg${i}`">
 | 
	
		
			
				|  |  | -          <AButton class="module-trigger-button" @click="item.visible = true">{{ item.moduleName }}</AButton>
 | 
	
		
			
				|  |  | +    <div class="left-t">
 | 
	
		
			
				|  |  | +      <div class="tcontent-area">
 | 
	
		
			
				|  |  | +        <div class="tcontent-l">
 | 
	
		
			
				|  |  | +          <div>监测</div>
 | 
	
		
			
				|  |  | +          <div>区域</div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  | +        <div class="tcontent-c">
 | 
	
		
			
				|  |  | +          <div style="margin-bottom: 15px; color: #009bff; font-size: 24px; font-weight: bolder; letter-spacing: 10px">
 | 
	
		
			
				|  |  | +            {{ homedata.allMineWarn }}
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div style="color: #fff; font-size: 12px">自燃倾向性等级 : 自燃</div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        <div class="tcontent-r">
 | 
	
		
			
				|  |  | +          <div>火灾</div>
 | 
	
		
			
				|  |  | +          <div>风险</div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <div class="right-t">
 | 
	
		
			
				|  |  | +      <div class="tcontent-l" @click="redirectTo('/grout-home')">
 | 
	
		
			
				|  |  | +        <div>智能</div>
 | 
	
		
			
				|  |  | +        <div>注浆系统</div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <div class="tcontent-r" @click="redirectTo('/nitrogen-home')">
 | 
	
		
			
				|  |  | +        <div>智能</div>
 | 
	
		
			
				|  |  | +        <div>注氮系统</div>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  | -    </template>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <ModuleBD
 | 
	
		
			
				|  |  | +      v-for="cfg in configs"
 | 
	
		
			
				|  |  | +      :key="cfg.deviceType"
 | 
	
		
			
				|  |  | +      :show-style="cfg.showStyle"
 | 
	
		
			
				|  |  | +      :module-data="cfg.moduleData"
 | 
	
		
			
				|  |  | +      :module-name="cfg.moduleName"
 | 
	
		
			
				|  |  | +      :device-type="cfg.deviceType"
 | 
	
		
			
				|  |  | +      :visible="true"
 | 
	
		
			
				|  |  | +      :page-type="pageType"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +    <ModuleBDDual
 | 
	
		
			
				|  |  | +      :show-style="configA.showStyle"
 | 
	
		
			
				|  |  | +      :module-data-a="configA.moduleData"
 | 
	
		
			
				|  |  | +      :module-name-a="configA.moduleName"
 | 
	
		
			
				|  |  | +      :device-type-a="configA.deviceType"
 | 
	
		
			
				|  |  | +      :module-data-b="configB.moduleData"
 | 
	
		
			
				|  |  | +      :module-name-b="configB.moduleName"
 | 
	
		
			
				|  |  | +      :device-type-b="configB.deviceType"
 | 
	
		
			
				|  |  | +      :visible="true"
 | 
	
		
			
				|  |  | +      :page-type="pageType"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +    <div style="width: 1000px; height: 570px; position: absolute; left: calc(50% - 500px); top: 60px">
 | 
	
		
			
				|  |  | +      <VentModal />
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script lang="ts" setup>
 | 
	
		
			
				|  |  | -  import { computed, onMounted, ref } from 'vue';
 | 
	
		
			
				|  |  | +  import { onMounted, ref } from 'vue';
 | 
	
		
			
				|  |  |    // import { CaretDownOutlined } from '@ant-design/icons-vue';
 | 
	
		
			
				|  |  |    // import MonitorCenter from './components/MonitorCenter.vue';
 | 
	
		
			
				|  |  | -  import { useInitConfigs } from './hooks/useInit';
 | 
	
		
			
				|  |  | -  import { Config } from '../../deviceManager/configurationTable/types';
 | 
	
		
			
				|  |  | -  import ModuleEnhanced from './components/ModuleEnhanced.vue';
 | 
	
		
			
				|  |  | -  import ModuleOriginal from './components/ModuleOriginal.vue';
 | 
	
		
			
				|  |  | -  import ModuleCommon from './components/ModuleCommon.vue';
 | 
	
		
			
				|  |  | -  import { testConfigBuErTai } from './configurable.data';
 | 
	
		
			
				|  |  | -  import { useRoute } from 'vue-router';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  interface EnhancedConfig extends Config {
 | 
	
		
			
				|  |  | -    visible: boolean;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  // import { useInitConfigs } from './hooks/useInit';
 | 
	
		
			
				|  |  | +  import ModuleBD from './components/ModuleBD.vue';
 | 
	
		
			
				|  |  | +  import ModuleBDDual from './components/ModuleBDDual.vue';
 | 
	
		
			
				|  |  | +  import { testConfigBDFire } from './configurable.data';
 | 
	
		
			
				|  |  | +  import VentModal from '/@/components/vent/micro/ventModal.vue';
 | 
	
		
			
				|  |  | +  import { getBDFireData } from './configurable.api';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const mainTitle = ref('智能通风管控系统');
 | 
	
		
			
				|  |  | +  const mainTitle = ref('保德煤矿火灾预警系统');
 | 
	
		
			
				|  |  | +  const pageType = 'BD_fire';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // const moduleCodes = ['fanlocal', 'fanmain' /** 'vc', 'ar', 'va', 'ws', 'dw' */];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const enhancedConfigs = ref<EnhancedConfig[]>([]);
 | 
	
		
			
				|  |  | +  const configs = ref(
 | 
	
		
			
				|  |  | +    testConfigBDFire.filter(({ moduleName }) => {
 | 
	
		
			
				|  |  | +      return moduleName !== '工作面光纤监测' && moduleName !== '工作面束管监测';
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  const configA = ref<any>(
 | 
	
		
			
				|  |  | +    testConfigBDFire.find(({ moduleName }) => {
 | 
	
		
			
				|  |  | +      return moduleName === '工作面束管监测';
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  const configB = ref<any>(
 | 
	
		
			
				|  |  | +    testConfigBDFire.find(({ moduleName }) => {
 | 
	
		
			
				|  |  | +      return moduleName === '工作面光纤监测';
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  // const { configs, fetchConfigs } = useInitConfigs();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const hiddenList = computed(() => {
 | 
	
		
			
				|  |  | -    return enhancedConfigs.value.filter((e) => e.visible === false);
 | 
	
		
			
				|  |  | -  });
 | 
	
		
			
				|  |  | -  const { configs, isOriginal, isCommon, fetchConfigs } = useInitConfigs();
 | 
	
		
			
				|  |  | +  const homedata = ref<any>({});
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    onMounted(() => {
 | 
	
		
			
				|  |  | -    const query = useRoute().query;
 | 
	
		
			
				|  |  | -    if (query.fire) {
 | 
	
		
			
				|  |  | -      mainTitle.value = '智能火灾管控系统';
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    if (query.gas) {
 | 
	
		
			
				|  |  | -      mainTitle.value = '智能瓦斯管控系统';
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |      // configs.value = testConfigB;
 | 
	
		
			
				|  |  | -    fetchConfigs('configurable_home').then(() => {
 | 
	
		
			
				|  |  | -      configs.value = testConfigBuErTai;
 | 
	
		
			
				|  |  | -      // configs.value.push(...testConfigBuErTai);
 | 
	
		
			
				|  |  | -      enhancedConfigs.value = configs.value.map((c) => {
 | 
	
		
			
				|  |  | -        return {
 | 
	
		
			
				|  |  | -          visible: true,
 | 
	
		
			
				|  |  | -          ...c,
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | +    getBDFireData({}).then((r) => {
 | 
	
		
			
				|  |  | +      homedata.value = r;
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | +    // fetchConfigs(pageType);
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  function redirectTo(url) {
 | 
	
		
			
				|  |  | +    window.open(url);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="less" scoped>
 | 
	
		
			
				|  |  |    @font-face {
 | 
	
	
		
			
				|  | @@ -121,14 +131,14 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .top-bg {
 | 
	
		
			
				|  |  |        width: 100%;
 | 
	
		
			
				|  |  | -      height: 56px;
 | 
	
		
			
				|  |  | +      height: 86px;
 | 
	
		
			
				|  |  |        background: url(/@/assets/images/home-container/configurable/firehome/fire-title.png) no-repeat center;
 | 
	
		
			
				|  |  |        position: absolute;
 | 
	
		
			
				|  |  |        z-index: 1;
 | 
	
		
			
				|  |  |        .main-title {
 | 
	
		
			
				|  |  | -        height: 56px;
 | 
	
		
			
				|  |  | +        height: 86px;
 | 
	
		
			
				|  |  |          font-family: 'douyuFont';
 | 
	
		
			
				|  |  | -        font-size: 20px;
 | 
	
		
			
				|  |  | +        font-size: 26px;
 | 
	
		
			
				|  |  |          letter-spacing: 2px;
 | 
	
		
			
				|  |  |          display: flex;
 | 
	
		
			
				|  |  |          justify-content: center;
 | 
	
	
		
			
				|  | @@ -178,4 +188,123 @@
 | 
	
		
			
				|  |  |        border-bottom: 2px solid #3df6ff;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .left-t {
 | 
	
		
			
				|  |  | +    position: absolute;
 | 
	
		
			
				|  |  | +    height: 115px;
 | 
	
		
			
				|  |  | +    top: 30px;
 | 
	
		
			
				|  |  | +    width: 450px;
 | 
	
		
			
				|  |  | +    background-image: url('/@/assets/images/home-container/configurable/firehome/qkjaq.png');
 | 
	
		
			
				|  |  | +    background-color: #000723;
 | 
	
		
			
				|  |  | +    background-repeat: no-repeat;
 | 
	
		
			
				|  |  | +    background-position: center;
 | 
	
		
			
				|  |  | +    background-size: 100% 100%;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .tcontent-area {
 | 
	
		
			
				|  |  | +      display: flex;
 | 
	
		
			
				|  |  | +      position: absolute;
 | 
	
		
			
				|  |  | +      top: 50%;
 | 
	
		
			
				|  |  | +      left: 0;
 | 
	
		
			
				|  |  | +      box-sizing: border-box;
 | 
	
		
			
				|  |  | +      align-items: center;
 | 
	
		
			
				|  |  | +      justify-content: space-around;
 | 
	
		
			
				|  |  | +      width: 100%;
 | 
	
		
			
				|  |  | +      height: 70px;
 | 
	
		
			
				|  |  | +      padding: 0 15px;
 | 
	
		
			
				|  |  | +      transform: translate(0, -40%);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .tcontent-l {
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        flex: 1;
 | 
	
		
			
				|  |  | +        flex-direction: column;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        color: #9da5aa;
 | 
	
		
			
				|  |  | +        font-size: 14px;
 | 
	
		
			
				|  |  | +        font-weight: bold;
 | 
	
		
			
				|  |  | +        letter-spacing: 2px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .tcontent-c {
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        flex: 3;
 | 
	
		
			
				|  |  | +        flex-direction: column;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .tcontent-r {
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        flex: 1;
 | 
	
		
			
				|  |  | +        flex-direction: column;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        color: #9da5aa;
 | 
	
		
			
				|  |  | +        font-size: 14px;
 | 
	
		
			
				|  |  | +        font-weight: bold;
 | 
	
		
			
				|  |  | +        letter-spacing: 2px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  .right-t {
 | 
	
		
			
				|  |  | +    position: absolute;
 | 
	
		
			
				|  |  | +    // height: 160px;
 | 
	
		
			
				|  |  | +    height: 115px;
 | 
	
		
			
				|  |  | +    right: 0;
 | 
	
		
			
				|  |  | +    top: 40px;
 | 
	
		
			
				|  |  | +    width: 450px;
 | 
	
		
			
				|  |  | +    background-image: url('/@/assets/images/home-container/configurable/firehome/common-border2.png');
 | 
	
		
			
				|  |  | +    background-color: #000723;
 | 
	
		
			
				|  |  | +    background-repeat: no-repeat;
 | 
	
		
			
				|  |  | +    background-position: center;
 | 
	
		
			
				|  |  | +    background-size: 100% 100%;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    justify-content: space-around;
 | 
	
		
			
				|  |  | +    z-index: 1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .tcontent-l {
 | 
	
		
			
				|  |  | +      flex: 1;
 | 
	
		
			
				|  |  | +      height: 100%;
 | 
	
		
			
				|  |  | +      font-size: 16px;
 | 
	
		
			
				|  |  | +      font-weight: bold;
 | 
	
		
			
				|  |  | +      background-image: url(/@/assets/images/home-container/configurable/firehome/img-5.png),
 | 
	
		
			
				|  |  | +        url(/@/assets/images/home-container/configurable/firehome/ggxt.png);
 | 
	
		
			
				|  |  | +      background-size:
 | 
	
		
			
				|  |  | +        auto 100%,
 | 
	
		
			
				|  |  | +        auto auto;
 | 
	
		
			
				|  |  | +      background-repeat: no-repeat;
 | 
	
		
			
				|  |  | +      background-position:
 | 
	
		
			
				|  |  | +        center,
 | 
	
		
			
				|  |  | +        center top;
 | 
	
		
			
				|  |  | +      text-align: center;
 | 
	
		
			
				|  |  | +      padding-top: 35px;
 | 
	
		
			
				|  |  | +      line-height: 40px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    .tcontent-r {
 | 
	
		
			
				|  |  | +      flex: 1;
 | 
	
		
			
				|  |  | +      height: 100%;
 | 
	
		
			
				|  |  | +      font-size: 16px;
 | 
	
		
			
				|  |  | +      font-weight: bold;
 | 
	
		
			
				|  |  | +      background-image: url(/@/assets/images/home-container/configurable/firehome/img-5.png),
 | 
	
		
			
				|  |  | +        url(/@/assets/images/home-container/configurable/firehome/zjxt.png);
 | 
	
		
			
				|  |  | +      background-size:
 | 
	
		
			
				|  |  | +        auto 100%,
 | 
	
		
			
				|  |  | +        auto auto;
 | 
	
		
			
				|  |  | +      background-repeat: no-repeat;
 | 
	
		
			
				|  |  | +      background-position:
 | 
	
		
			
				|  |  | +        center,
 | 
	
		
			
				|  |  | +        center top;
 | 
	
		
			
				|  |  | +      text-align: center;
 | 
	
		
			
				|  |  | +      padding-top: 35px;
 | 
	
		
			
				|  |  | +      line-height: 40px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  :deep(.loading-box) {
 | 
	
		
			
				|  |  | +    position: unset;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  </style>
 |