From fcc5b3bd1bfd1f51b8dbebea2898095c2f2632b8 Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期四, 20 八月 2020 10:14:38 +0800
Subject: [PATCH] 实时监控固定视频宽高比,右侧卡片高跟随视频高度变化

---
 src/pages/cameraVideo/index/Video.vue |  126 +++++++++++++++++++++++++-----------------
 1 files changed, 75 insertions(+), 51 deletions(-)

diff --git a/src/pages/cameraVideo/index/Video.vue b/src/pages/cameraVideo/index/Video.vue
index bffa55d..e4ebff0 100644
--- a/src/pages/cameraVideo/index/Video.vue
+++ b/src/pages/cameraVideo/index/Video.vue
@@ -1,53 +1,56 @@
 <template>
   <div style="width:100%; height: 100%;">
     <div class="monitoring-right" ref="videoRight">
-      <div class="monitoring-video" ref="monitorVideo">
-        <div class="monitoring-video-guid">
-          <span
-            :class="guid === 1 ? 'iconfont icongongge1 activegongge':'iconfont icongongge1'"
-            @click="setGuid(1)"
-          ></span>
-          <span
-            :class="guid === 2 ? 'iconfont icongongge activegongge':'iconfont icongongge'"
-            @click="setGuid(2)"
-          ></span>
-          <span
-            :class="guid === 3 ? 'iconfont icongongge2 activegongge':'iconfont icongongge2'"
-            @click="setGuid(3)"
-          ></span>
-          <el-tooltip
-            v-show="true"
-            :content="`${track ? '鍏抽棴杩借釜': '寮�鍚拷韪�'}`"
-            placement="bottom"
-            popper-class="atooltip"
-          >
+      <div class="main-top">
+        <div class="monitoring-video" ref="monitorVideo">
+          <div class="monitoring-video-guid">
             <span
-              :class="track ? 'iconfont iconintruder-alarm activegongge':'iconfont iconintruder-alarm'"
-              @click="handleTrack"
+              :class="guid === 1 ? 'iconfont icongongge1 activegongge':'iconfont icongongge1'"
+              @click="setGuid(1)"
             ></span>
-          </el-tooltip>
+            <span
+              :class="guid === 2 ? 'iconfont icongongge activegongge':'iconfont icongongge'"
+              @click="setGuid(2)"
+            ></span>
+            <span
+              :class="guid === 3 ? 'iconfont icongongge2 activegongge':'iconfont icongongge2'"
+              @click="setGuid(3)"
+            ></span>
+            <el-tooltip
+              v-show="true"
+              :content="`${track ? '鍏抽棴杩借釜': '寮�鍚拷韪�'}`"
+              placement="bottom"
+              popper-class="atooltip"
+            >
+              <span
+                :class="track ? 'iconfont iconintruder-alarm activegongge':'iconfont iconintruder-alarm'"
+                @click="handleTrack"
+              ></span>
+            </el-tooltip>
+          </div>
+          <div class="fixedRatioBox">
+            <div
+              :class="guid === 1 ? 'video-main-box' : 'video-main-box-side'"
+              v-if="visibilityState"
+            >
+              <video-item
+                v-for="(item, index) in TreeDataPool.videoArr"
+                :key="index"
+                :videoGuid="guid"
+                :videoIndex="index"
+                :videoItem="item"
+                :class="[
+                  TreeDataPool.activeVideoIndex === index ? 'activeItem' : '',
+                  guid === 1 ? 'onlyActiveItem' : ''
+                ]"
+                @click="videoItemClick(index)"
+              ></video-item>
+            </div>
+          </div>
         </div>
-        <div
-          :class="guid === 1 ? 'video-main-box' : 'video-main-box-side'"
-          style="width: 100%; height: calc(100% - 35px);"
-          v-if="visibilityState"
-        >
-          <video-item
-            v-for="(item, index) in TreeDataPool.videoArr"
-            :key="index"
-            :videoGuid="guid"
-            :videoIndex="index"
-            :videoItem="item"
-            :class="[
-              TreeDataPool.activeVideoIndex === index ? 'activeItem' : '',
-              guid === 1 ? 'onlyActiveItem' : ''
-            ]"
-            @click="videoItemClick(index)"
-          ></video-item>
+        <div class="monitoring-task" ref="monitorTask">
+          <video-task ref="taskview" @addToBase="toAdd"></video-task>
         </div>
-      </div>
-      <div class="monitoring-task" ref="monitorTask">
-        <video-task ref="taskview" @addToBase="toAdd"></video-task>
       </div>
       <div class="monitoring-photo">
         <video-photo ref="photoview" @addToBase="toAdd"></video-photo>
@@ -163,8 +166,9 @@
   mounted() {
     document.addEventListener("visibilitychange", this.visibilitychange, false);
     this.$nextTick(() => {
-      window.addEventListener("resize", this.getRightWidth);
-      this.getRightWidth();
+      window.addEventListener("resize", this.resizeMonitorTask);
+      //this.getRightWidth();
+      this.resizeMonitorTask();
     })
     this.getCenter();
     this.blackAngWhite();
@@ -422,6 +426,14 @@
     closeWindow(index) {
       this.CardList.addBaseList.splice(index, 1);
     },
+    getVideoHeight(){
+      let h = this.$refs.monitorVideo.offsetHeight;
+      this.$refs.monitorTask.style.height = h+'px';
+    },
+    resizeMonitorTask(){
+      this.getRightWidth();
+      this.getVideoHeight();
+    },
     getRightWidth() {
       let w = this.$refs.videoRight.offsetWidth;
       // console.log("w鏄細", w,this.$refs.monitorVideo.offsetWidth);
@@ -560,12 +572,17 @@
   box-sizing: border-box;
   padding: 10px;
   background-color: #e9ebf2;
+  .main-top{
+    margin-bottom: 14px;
+    display: flex;
+    justify-content: space-between;
+  }
   .monitoring-video {
     width: 70.5%;
     min-width: 740px;
     max-width: 1208px;
-    height: 71%;
-    float: left;
+    height: 98%;
+    //float: left;
     box-sizing: border-box;
     // box-shadow: #e4e7ed 0px 0px 9px inset;
     border-radius: 5px;
@@ -605,15 +622,22 @@
         cursor: pointer;
       }
     }
+    .fixedRatioBox{
+      padding-top: 56.3%;
+      box-sizing: border-box;
+      position: relative;
+      >div{
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        top: 0;
+      }
+    }
   }
   .monitoring-task {
-    // @media screen and (max-width: 1700px){
-
-    // }
     //width: calc(29.5% - 10px);
     width: calc(34% - 10px);
     //width: auto;
-    height: 70.5%;
     background-color: #fff;
     float: left;
     margin: 0px 0px 0px 10px;

--
Gitblit v1.8.0