Newer
Older
urbanLifeline_YanAn / src / views / oneMap / components / ZHQL.vue
@zhangzhihui zhangzhihui on 17 Oct 4 KB 安全桥梁
<template>
  <div id="ZHQL">
    <!-- 左侧盒子 -->
    <div :class="['LeftBox', 'animate__animated', showPanel ? 'animate__fadeOutLeft' : 'animate__fadeInLeft']">
      <LeftBox></LeftBox>
    </div>
    <!-- 右侧盒子 -->
    <div :class="['RightBox', 'animate__animated', showPanel ? 'animate__fadeOutRight' : 'animate__fadeInRight']">
      <RightBox></RightBox>
    </div>
    <div :class="['TopBox', 'animate__animated', showPanel ? 'animate__fadeOutUp' : 'animate__fadeInDown']">
      <div class="TopInfoList" v-for="item in AllData.TopInfoData">
        <img class="TopInfoListIcon" :src="item.icon" alt="" />
        <div class="TopInfoListFont">{{ item.font }}</div>
        <div class="TopInfoListNum">
          {{ item.num }} <span class="TopInfoListunit">{{ item.unit }}</span>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup name="ZHQL">
import LeftBox from '@/views/oneMap/smartBridge/LeftBox.vue';
import RightBox from '@/views/oneMap/smartBridge/RightBox.vue';
import { ref, reactive, toRefs, onMounted } from 'vue';

// 顶部信息展示
import QL_WD from '@/assets/images/Sponge_screen/QiaoLiang/QL_WD.png';
import QL_SD from '@/assets/images/Sponge_screen/QiaoLiang/QL_SD.png';
import QL_FS from '@/assets/images/Sponge_screen/QiaoLiang/QL_FS.png';
import QL_FL from '@/assets/images/Sponge_screen/QiaoLiang/QL_FL.png';
const AllData = reactive({
  // 顶部信息展示
  TopInfoData: [
    {
      icon: QL_WD,
      font: '温度',
      num: '16',
      unit: '℃',
    },
    {
      icon: QL_SD,
      font: '湿度',
      num: '32',
      unit: '%',
    },
    {
      icon: QL_FS,
      font: '风速',
      num: '5.2',
      unit: 'm/s',
    },
    {
      icon: QL_FL,
      font: '风力',
      num: '4',
      unit: '级',
    },
  ],
});
const showPanel = ref(true); //面板展开收起
// 面板内容展开收起控制
const props = defineProps({
  showPanel: {
    type: Boolean,
  },
});
watch(
  () => props.showPanel,
  () => {
    showPanel.value = props.showPanel;
  },
  { immediate: true }
);
onMounted(() => {});
</script>

<style lang="scss" scoped>
#ZHQL {
  .LeftBox {
    width: 450px;
    height: calc(100% - 98px);
    position: absolute;
    left: 10px;
    top: 70px;
    background: linear-gradient(0deg, rgba(0, 43, 67, 0.8) 0%, rgba(0, 69, 108, 0.8) 100%);
    border-radius: 6px;
    border: 1px solid #47eef3;
    box-sizing: border-box;
    // padding: 10px;
    box-shadow: inset 0 0 5px 5px #47eef38a;
  }
  .RightBox {
    width: 450px;
    height: calc(100% - 98px);
    position: absolute;
    right: 10px;
    top: 70px;
    background: linear-gradient(0deg, rgba(0, 43, 67, 0.8) 0%, rgba(0, 69, 108, 0.8) 100%);
    border-radius: 6px;
    border: 1px solid #47eef3;
    box-sizing: border-box;
    // padding: 10px;
    box-shadow: inset 0 0 5px 5px #47eef38a;
  }
  .TopBox {
    width: calc(100% - 1000px);
    height: 65px;
    position: absolute;
    left: 500px;
    top: 110px;
    // background: linear-gradient(
    //   0deg,
    //   rgba(0, 43, 67, 0.8) 0%,
    //   rgba(0, 69, 108, 0.8) 100%
    // );
    border-radius: 6px;
    // border: 1px solid #47eef3;
    box-sizing: border-box;
    // box-shadow: inset 0 0 5px 5px #47eef38a;
    padding: 10px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-evenly;
    align-items: center;

    .TopInfoList {
      width: 180px;
      height: 65px;

      .TopInfoListIcon {
        width: 67px;
        height: 65px;
        float: left;
      }

      .TopInfoListFont {
        width: 113px;
        height: 35px;
        float: left;
        font-family: Source Han Sans CN;
        font-weight: 500;
        font-size: 16px;
        color: #ffffff;
        line-height: 35px;
        padding-left: 12px;
      }
      .TopInfoListNum {
        padding-left: 12px;
        width: 113px;
        height: 30px;
        float: left;
        font-family: Source Han Sans CN;
        font-weight: bold;
        font-size: 22px;
        color: #15d2fd;

        .TopInfoListunit {
          font-family: Source Han Sans CN;
          font-weight: 500;
          font-size: 16px;
          color: #cef6ff;
        }
      }
    }
  }
  // 左右两侧展示板块公共样式
  .ComBox {
    width: 100%;
    box-sizing: border-box;
    .Box_header {
      width: 100%;
      height: 43px;
      background: url('@/assets/images/Sponge_screen/Box_HeaderBackground.png') no-repeat center;
      background-size: cover;
      font-family: PangMenZhengDao;
      font-weight: 400;
      font-size: 23px;
      color: #ebfeff;
      line-height: 43px;
      box-sizing: border-box;
      padding-left: 35px;
    }

    .Box_Body {
      width: 100%;
      height: calc(100% - 43px);
      box-sizing: border-box;
      position: relative;
      overflow: auto;
    }
  }
  .color_red {
    color: #ff3f3f !important;
  }

  @keyframes moveUp {
    0% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(-20px);
    }
  }
}
</style>