src/views/screen/components/screen-wrapper/index.vue
@@ -1,50 +1,77 @@
<template>
  <div class="wrapper-container">
    <select-item></select-item>
    <div class="return-button">
      <el-button type="primary" @click="returnPath">管理系统</el-button>
    <!-- <select-item></select-item>
    <div class="return-button" @click="returnPath">
      返回
    </div>
    <div class="wrapper-content">
      <div class="left-container wrapper">
        <screen-face></screen-face>
        <screen-car></screen-car>
        <screen-video></screen-video>
    <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></screen-map>
        <screen-detection></screen-detection>
        <screen-map-cover></screen-map-cover>
        <screen-table class="enter-top" :class="{ 'animate-enter-y': isEnd }"></screen-table> -->
        <!-- <screen-detection></screen-detection> -->
      </div>
      <!-- </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> -->
  </div>
</template>
<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 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,
    ScreenDetection,
    ScreenExamine,
    ScreenTable,
    ScreenMapCover,
    ScreenMapThree,
    ScreenFace,
    ScreenVideo,
    ScreenCar,
    ScreenMap
    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>
@@ -53,20 +80,27 @@
.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%;
  width: 46%;
  height: 54%;
  position: absolute;
  top: 0;
  left: 0;
  top: 11%;
  left: 27%;
  z-index: 1;
  .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;
@@ -77,7 +111,7 @@
}
.wrapper {
  width: 27%;
  width: 25%;
  height: 100%;
  box-sizing: border-box;
  padding: 0 10px;
@@ -93,8 +127,9 @@
    padding-right: 0;
  }
}
.center-wrapper {
  width: 46%;
  width: 50%;
  height: 100%;
  box-sizing: border-box;
  padding: 0 10px;
@@ -102,4 +137,61 @@
  flex-direction: column;
  justify-content: space-between;
}
</style>
.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>