From bd9cb65c8ee634f1f7bad5a69e891e3a4f46b768 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期一, 01 四月 2024 15:54:41 +0800 Subject: [PATCH] feat:绘制地图 --- src/views/screen/components/screen-wrapper/index.vue | 112 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 99 insertions(+), 13 deletions(-) diff --git a/src/views/screen/components/screen-wrapper/index.vue b/src/views/screen/components/screen-wrapper/index.vue index 6cbb50e..c501131 100644 --- a/src/views/screen/components/screen-wrapper/index.vue +++ b/src/views/screen/components/screen-wrapper/index.vue @@ -2,21 +2,24 @@ <div class="wrapper-container"> <select-item></select-item> <div class="return-button"> - <el-button type="primary" @click="returnPath">杩斿洖</el-button> + <el-button type="primary" @click="returnPath">绠$悊绯荤粺</el-button> </div> <div class="wrapper-content"> + <screen-map-three></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-detection></screen-detection> + <!-- <screen-map></screen-map> --> + <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> </div> </div> </div> @@ -25,26 +28,50 @@ <script> import SelectItem from '../select-item/index'; import ScreenFace from '../screen-face/index'; -import ScreenDetection from '../screen-detection/index'; import ScreenExamine from '../screen-examine/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.vue'; + export default { name: 'ScreenWrapper', components: { SelectItem, ScreenFace, - ScreenDetection, ScreenExamine, ScreenVideo, ScreenCar, - ScreenMap + ScreenMap, + ScreenTable, + ScreenMapCover, + ScreenMapThree + }, + data() { + return { + isEnd: false + } }, methods: { returnPath() { - this.$router.go(-1); + 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); + }, + destroyed() { + const container = document.querySelector('.screen-wrapper'); + container.removeEventListener('transitionend', this.checkAnimationEnd); } } </script> @@ -55,6 +82,7 @@ right: 20px; top: 40px; } + .wrapper-container { width: 100%; height: 100%; @@ -77,7 +105,7 @@ } .wrapper { - width: 27%; + width: 20%; height: 100%; box-sizing: border-box; padding: 0 10px; @@ -93,8 +121,9 @@ padding-right: 0; } } + .center-wrapper { - width: 46%; + width: 60%; height: 100%; box-sizing: border-box; padding: 0 10px; @@ -102,4 +131,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