From b76fd2fa93c2036d66e5142654cf66cf1e371531 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 30 四月 2024 17:12:34 +0800 Subject: [PATCH] 改为连表查询 --- src/views/screen/components/screen-wrapper/index.vue | 127 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 109 insertions(+), 18 deletions(-) diff --git a/src/views/screen/components/screen-wrapper/index.vue b/src/views/screen/components/screen-wrapper/index.vue index 0f67a02..b80e0e0 100644 --- a/src/views/screen/components/screen-wrapper/index.vue +++ b/src/views/screen/components/screen-wrapper/index.vue @@ -1,23 +1,25 @@ <template> <div class="wrapper-container"> <select-item></select-item> - <div class="return-button"> - <el-button type="primary" @click="returnPath">绠$悊绯荤粺</el-button> + <div class="return-button" @click="returnPath"> + 杩斿洖 </div> <div class="wrapper-content"> + <screen-map-three :loadEnd="isEnd"></screen-map-three> <div class="left-container wrapper"> - <screen-face></screen-face> - <screen-car></screen-car> - <screen-video></screen-video> + <screen-face class="enter-left" :class="{ 'animate-enter-x': isEnd }"></screen-face> + <screen-car class="enter-left animate-delay-1" :class="{ 'animate-enter-x': isEnd }"></screen-car> + <screen-video class="enter-left animate-delay-2" :class="{ 'animate-enter-x': isEnd }"></screen-video> </div> <div class="center-container center-wrapper"> - <screen-map></screen-map> - <screen-table></screen-table> + <screen-map-cover></screen-map-cover> + <screen-table class="enter-top" :class="{ 'animate-enter-y': isEnd }"></screen-table> <!-- <screen-detection></screen-detection> --> </div> <div class="right-container wrapper"> - <screen-examine></screen-examine> + <screen-examine class="enter-right" :class="{ 'animate-enter-x': isEnd }"></screen-examine> + <screen-data class="enter-right animate-delay-1" :class="{ 'animate-enter-x': isEnd }"></screen-data> </div> </div> </div> @@ -25,27 +27,51 @@ <script> import SelectItem from '../select-item/index'; -import ScreenFace from '../screen-face/index'; import ScreenExamine from '../screen-examine/index'; +import ScreenFace from '../screen-face/index'; import ScreenVideo from '../screen-video/index'; import ScreenCar from '../screen-car/index'; -import ScreenMap from '../screen-map/index'; +import ScreenMapCover from '../screen-map-cover/index'; import ScreenTable from '../screen-table/index'; +import ScreenMapThree from '../screen-map-three/index'; +import ScreenData from '../screen-data/index'; + export default { name: 'ScreenWrapper', components: { SelectItem, - ScreenFace, ScreenExamine, + ScreenTable, + ScreenMapCover, + ScreenMapThree, + ScreenFace, ScreenVideo, ScreenCar, - ScreenMap, - ScreenTable + ScreenData + }, + data() { + return { + isEnd: false, + } }, methods: { returnPath() { this.$router.push('/index'); + }, + checkAnimationEnd(event) { + if (this.isEnd) return; + if (event.propertyName === 'transform') { + this.isEnd = true; + } } + }, + mounted() { + const container = document.querySelector('.screen-wrapper'); + container.addEventListener('transitionend', this.checkAnimationEnd); + }, + beforDestroy() { + const container = document.querySelector('.screen-wrapper'); + container.removeEventListener('transitionend', this.checkAnimationEnd); } } </script> @@ -54,8 +80,15 @@ .return-button { position: absolute; right: 20px; - top: 40px; + top: 10px; + border-radius: 4px; + border: 1px solid #4481DD; + background-color: rgba(67, 102, 155, 0.4); + color: #4481DD; + padding: 5px 20px; + cursor: pointer; } + .wrapper-container { width: 100%; height: 100%; @@ -66,8 +99,8 @@ .wrapper-content { width: 100%; - height: calc(100% - 100px); - margin-top: 100px; + height: calc(100% - 60px); + margin-top: 60px; position: relative; box-sizing: border-box; padding: 20px; @@ -78,7 +111,7 @@ } .wrapper { - width: 27%; + width: 25%; height: 100%; box-sizing: border-box; padding: 0 10px; @@ -94,8 +127,9 @@ padding-right: 0; } } + .center-wrapper { - width: 46%; + width: 50%; height: 100%; box-sizing: border-box; padding: 0 10px; @@ -103,4 +137,61 @@ flex-direction: column; justify-content: space-between; } + +.animate-enter-x { + animation: enter-x 0.4s ease forwards; +} + +.animate-enter-y { + animation: enter-y 0.4s ease forwards; +} + +.enter-left { + transform: translateX(-100px); + opacity: 0; +} + +.enter-right { + transform: translateX(100px); + opacity: 0; +} + +.enter-top { + transform: translateY(100px); + opacity: 0; +} + +.animate-delay-1 { + animation-delay: 0.1s; +} + +.animate-delay-2 { + animation-delay: 0.3s; +} + +.animate-delay-3 { + animation-delay: 0.5s; +} + +@keyframes enter-x { + from { + opacity: 0; + } + + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes enter-y { + from { + opacity: 0; + } + + to { + opacity: 1; + transform: translateY(0); + } +} </style> \ No newline at end of file -- Gitblit v1.8.0