<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>