<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(4, 34, 84, 0.8) 0%, rgba(4, 34, 84, 0.8) 100%); border-radius: 6px; border: 1px solid #4aa4ff; box-shadow: inset 0 0 5px 5px #4aa4ff8a; } .RightBox { width: 450px; height: calc(100% - 98px); position: absolute; right: 10px; top: 70px; background: linear-gradient(0deg, rgba(4, 34, 84, 0.8) 0%, rgba(4, 34, 84, 0.8) 100%); border-radius: 6px; border: 1px solid #4aa4ff; box-shadow: inset 0 0 5px 5px #4aa4ff8a; } .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>