<template>
  <BasicModal @register="register" :title="titleName" width="100%" v-bind="$attrs" @ok="onSubmit" @cancel="onSubmit" :defaultFullscreen="true">
    <div class="alarm-modal">
      <div class="containers">
        <div class="alarm-menu">
          <div class="type-btn" v-if="isShowModule">
            <div :class="activeIndex == index ? 'btn1' : 'btn'" v-for="(item, index) in typeMenuList" :key="index" @click="btnClick(index)">
              {{ item.name }}
            </div>
          </div>
          <div class="card-btn">
            <div :class="activeIndex1 == ind ? 'btn1' : 'btn'" v-for="(item, ind) in menuList" :key="ind" @click="cardClick(ind, item)">
              <div class="text">{{ item.name }}</div>
              <div class="warn">{{ item.warn }}</div>
            </div>
          </div>
        </div>
        <div class="alarm-content">
          <!-- <div class="toggle-btn">
            <div :class="activeIndex2 == ind ? 'btn-item1' : 'btn-item'" v-for="(items, ind) in btnList" :key="ind"
              @click="toggleClick(ind)">
              {{ items.label }}
            </div>
          </div> -->
          <component :is="componentName[current]" />
        </div>
      </div>
    </div>
  </BasicModal>
</template>
<script lang="ts" setup>
  import { onMounted, ref, defineEmits, reactive, onUnmounted, watch, markRaw, defineAsyncComponent, defineProps } from 'vue';
  import { BasicModal, useModalInner } from '/@/components/Modal';
  import { typeMenuList, componentName } from './fire.data';

  let props = defineProps({
    moduleName: String,
  });

  let isShowModule = ref(true); //是否显示内外因火灾切换按钮
  let titleName = ref('');
  let menuList = reactive<any[]>([]); //左侧菜单列表
  //内外因火灾激活索引
  let activeIndex = ref(0);
  //当前激活菜单的索引
  let activeIndex1 = ref(0);
  //当前加载组件
  let current = ref('fireWork');
  //实时/历史数据激活索引
  let activeIndex2 = ref(0);
  // //实时历史数据按钮列表
  // let btnList = reactive([{ label: '实时' }]);

  const emit = defineEmits(['close', 'register']);

  // 注册 modal
  const [register, { closeModal }] = useModalInner();

  async function onSubmit() {
    emit('close');
    closeModal();
  }
  //内外因火灾选项切换
  function btnClick(ind) {
    activeIndex.value = ind;
    switch (ind) {
      case 0:
        activeIndex1.value = 0;
        current.value = 'fireWork';
        menuList.forEach((el) => {
          el.type = 'on';
        });
        break;
      case 1:
        activeIndex1.value = 0;
        current.value = 'mainWell';
        menuList.forEach((el) => {
          el.type = 'out';
        });
        break;
    }
  }
  //菜单选项切换
  function cardClick(ind, item) {
    console.log(ind, 'index');
    activeIndex1.value = ind;
    switch (ind) {
      case 0:
        current.value = item.type == 'on' ? 'fireWork' : 'mainWell';
        break;
      case 1:
        current.value = item.type == 'on' ? 'closeWall' : 'subStation';
        break;
      case 2:
        current.value = item.type == 'on' ? 'otherMonitor' : 'otherOut';
        break;
    }
  }

  watch(
    () => props.moduleName,
    (val) => {
      if (val == 'fire') {
        titleName.value = '火灾监测';
        isShowModule.value = true;
        menuList = [
          { name: '综采工作面1', warn: '低风险', type: 'on' },
          { name: '密闭工作面1', warn: '低风险', type: 'on' },
          { name: '其他工作面1', warn: '低风险', type: 'on' },
        ];
      } else if (val == 'dust') {
        titleName.value = '粉尘监测';
        isShowModule.value = false;
        menuList = [{ name: '粉尘', warn: '低风险', type: 'on' }];
        current.value = 'dustPage';
      } else {
        titleName.value = '瓦斯监测';
        isShowModule.value = false;
        menuList = [{ name: '瓦斯', warn: '低风险', type: 'on' }];
        current.value = 'gasPage';
      }
    },
    {immediate:true}
  );

  onMounted(async () => {});
  onUnmounted(() => {});
</script>
<style scoped lang="less">
  @import '/@/design/vent/color.less';
  @import '/@/design/vent/modal.less';

  .alarm-modal {
    position: relative;
    z-index: 999;

    max-height: calc(100vh - 150px);

    .@{ventSpace}-tabs {
      max-height: calc(100vh - 100px);
    }

    .containers {
      width: 100%;
      height: calc(100vh - 159px);
      display: flex;
      justify-content: space-between;

      .alarm-menu {
        height: 100%;
        width: 262px;

        .type-btn {
          width: 192px;
          height: 28px;
          line-height: 28px;
          border: 1px solid #0058ee;
          margin-bottom: 20px;
          border-radius: 5px;
          box-sizing: border-box;
          display: flex;
          justify-content: space-between;

          .btn {
            width: 50%;
            height: 100%;
            font-size: 14px;
            text-align: center;
            color: #fff;
            cursor: pointer;
          }

          .btn1 {
            width: 50%;
            height: 100%;
            font-size: 14px;
            color: #fff;
            text-align: center;
            border-radius: 2px;
            background: #0058ee;
            cursor: pointer;
          }
        }

        .card-btn {
          width: 100%;
          height: calc(100% - 48px);
          overflow-y: auto;

          .btn {
            position: relative;
            width: 212px;
            height: 99px;
            margin-bottom: 30px;
            font-family: 'douyuFont';
            background: url('../../../../assets/images/fire/no-choice.png') no-repeat;
            background-size: 100% 100%;
            cursor: pointer;

            .text {
              width: 80%;
              position: absolute;
              left: 50%;
              top: 22px;
              font-size: 16px;
              color: #01fefc;
              text-align: center;
              transform: translate(-50%, 0);
            }

            .warn {
              width: 100%;
              position: absolute;
              left: 50%;
              top: 68px;
              font-size: 16px;
              color: #fff;
              text-align: center;
              transform: translate(-50%, 0);
            }
          }

          .btn1 {
            position: relative;
            width: 262px;
            height: 99px;
            margin-bottom: 30px;
            font-family: 'douyuFont';
            background: url('../../../../assets//images//fire/choice.png') no-repeat;
            background-size: 100% 100%;
            cursor: pointer;

            .text {
              width: 80%;
              position: absolute;
              left: 50%;
              top: 22px;
              font-size: 16px;
              color: #01fefc;
              text-align: center;
              transform: translate(-62%, 0);
            }

            .warn {
              width: 100%;
              position: absolute;
              left: 50%;
              top: 68px;
              font-size: 16px;
              color: #fff;
              text-align: center;
              transform: translate(-60%, 0);
            }
          }
        }
      }

      .alarm-content {
        width: calc(100% - 282px);
        height: 100%;
        margin-left: 20px;
        background: url('../../../../assets//images/fire/border.png') no-repeat;
        background-size: 100% 100%;

        // .toggle-btn {
        //   position: absolute;
        //   right: 10px;
        //   top: -34px;
        //   display: flex;

        //   .btn-item {
        //     width: 157px;
        //     height: 36px;
        //     line-height: 36px;
        //     text-align: center;
        //     color: #fff;
        //     font-size: 14px;
        //     cursor: pointer;
        //     background: url('../../../../assets//images//fire/tab-2.png') no-repeat;
        //   }

        //   .btn-item1 {
        //     width: 157px;
        //     height: 36px;
        //     line-height: 36px;
        //     text-align: center;
        //     color: #fff;
        //     font-size: 14px;
        //     cursor: pointer;
        //     background: url('../../../../assets/images//fire/tab-1.png') no-repeat;
        //   }
        // }
      }
    }
  }

  :deep(.@{ventSpace}-tabs-tabpane-active) {
    height: 100%;
  }

  :deep(.@{ventSpace}-tabs-card) {
    .@{ventSpace}-tabs-tab {
      background: linear-gradient(#2cd1ff55, #1eb0ff55);
      border-color: #74e9fe;
      border-radius: 0%;

      &:hover {
        color: #64d5ff;
      }
    }

    .@{ventSpace}-tabs-tab.@{ventSpace}-tabs-tab-active .@{ventSpace}-tabs-tab-btn {
      color: aqua;
    }

    .@{ventSpace}-tabs-nav::before {
      border-color: #74e9fe;
    }

    .@{ventSpace}-picker,
    .@{ventSpace}-select-selector {
      width: 100% !important;
      background: #00000017 !important;
      border: 1px solid @vent-form-item-boder !important;

      input,
      .@{ventSpace}-select-selection-item,
      .@{ventSpace}-picker-suffix {
        color: #fff !important;
      }

      .@{ventSpace}-select-selection-placeholder {
        color: #b7b7b7 !important;
      }
    }

    .@{ventSpace}-pagination-next,
    .action,
    .@{ventSpace}-select-arrow,
    .@{ventSpace}-picker-separator {
      color: #fff !important;
    }

    .@{ventSpace}-table-cell-row-hover {
      background: #264d8833 !important;
    }

    .@{ventSpace}-table-row-selected {
      background: #00c0a311 !important;

      td {
        background-color: #00000000 !important;
      }
    }

    .@{ventSpace}-table-thead {
      // background: linear-gradient(#004a8655 0%, #004a86aa 10%) !important;
      background: #3d9dd45d !important;

      & > tr > th,
      .@{ventSpace}-table-column-title {
        // color: #70f9fc !important;
        border-color: #84f2ff !important;
        border-left: none !important;
        border-right: none !important;
        padding: 7px;
      }
    }

    .@{ventSpace}-table-tbody {
      tr > td {
        padding: 12px;
      }
    }

    .@{ventSpace}-table-tbody > tr:hover.@{ventSpace}-table-row > td {
      background-color: #26648855 !important;
    }

    .jeecg-basic-table-row__striped {
      // background: #97efff11 !important;
      td {
        background-color: #97efff11 !important;
      }
    }
  }
</style>
