From 3c6bdb6f439ff7af04765259fd6a91b6d201d095 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 19 六月 2025 17:12:25 +0800 Subject: [PATCH] 工单,数据中心用户查看数据的权限,合同考核每日,以及导出每日和按月 --- src/views/screen/components/screen-wrapper/index.vue | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 154 insertions(+), 23 deletions(-) diff --git a/src/views/screen/components/screen-wrapper/index.vue b/src/views/screen/components/screen-wrapper/index.vue index 6c44f8e..e68695b 100644 --- a/src/views/screen/components/screen-wrapper/index.vue +++ b/src/views/screen/components/screen-wrapper/index.vue @@ -1,66 +1,197 @@ <template> <div class="wrapper-container"> - <div class="wrapper-content"> - <div class="left-container wrapper"> - <screen-face></screen-face> - </div> - <div class="center-container wrapper"> - <screen-detection></screen-detection> - </div> - <div class="right-container wrapper"> - - </div> + <!-- <select-item></select-item> + <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 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-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 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> </template> <script> +import SelectItem from '../select-item/index'; +import ScreenExamine from '../screen-examine/index'; import ScreenFace from '../screen-face/index'; -import ScreenDetection from '../screen-detection/index'; +import ScreenVideo from '../screen-video/index'; +import ScreenCar from '../screen-car/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, + ScreenExamine, + ScreenTable, + ScreenMapCover, + ScreenMapThree, ScreenFace, - ScreenDetection + ScreenVideo, + ScreenCar, + 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> <style lang="scss" scoped> -.wrapper-container { - width: 100%; - height: 100%; +.return-button { position: absolute; - top: 0; - left: 0; + right: 20px; + 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: 46%; + height: 54%; + position: absolute; + top: 11%; + left: 27%; z-index: 1; + .wrapper-content { width: 100%; - height: calc(100% - 100px); - margin-top: 100px; - border: 1px solid red; + height: calc(100% - 60px); + margin-top: 60px; position: relative; box-sizing: border-box; padding: 20px; display: flex; align-items: center; + justify-content: space-between; } } .wrapper { - width: 33.3%; + width: 25%; height: 100%; box-sizing: border-box; padding: 0 10px; - border: 1px solid red; display: flex; flex-direction: column; justify-content: space-between; + &:first-of-type { padding-left: 0; } + &:last-of-type { padding-right: 0; } } -</style> \ No newline at end of file + +.center-wrapper { + width: 50%; + height: 100%; + box-sizing: border-box; + padding: 0 10px; + display: flex; + 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> -- Gitblit v1.8.0