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