From e01cac63860c20450a6b9d8dd3a937dafdcc1d3b Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期四, 24 六月 2021 15:09:10 +0800
Subject: [PATCH] 切换路况视频左侧高亮的bug

---
 src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue |  183 ++++++++++++++++++++++++++-------------------
 1 files changed, 107 insertions(+), 76 deletions(-)

diff --git a/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue b/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
index 90ab683..c72279d 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
@@ -17,7 +17,8 @@
               v-for="(item, index) in popDownArr"
               :key="index"
               :command="item"
-            >{{ item.Camera }}</el-dropdown-item>
+              >{{ item.CameraPosition }}</el-dropdown-item
+            >
           </el-dropdown-menu>
         </el-dropdown>
 
@@ -52,10 +53,10 @@
           <div class="v-name-block">
             <div
               class="video-name"
-              :class="{ current: curVideo.ID == video.ID }"
+              :class="{ current: curVideo.GroupID == video.GroupID }"
               @click="checkVideo(video, index)"
               v-for="(video, index) in curRoomVideos"
-              :key="video.ID"
+              :key="video.id"
             >
               <i class="el-icon-film"></i>
               <span>{{ video.VideoDate }}</span>
@@ -76,9 +77,9 @@
                   @pause="isStop = true"
                   @play="isStop = false"
                   @timeupdate="timeUpdate"
-                  :source="curVideo.VideoPath"
+                  :source="curVideo.VideoPath | fixPath"
                   :markers="curVideo.marks"
-                  :ref="`player_${curVideo.ID}`"
+                  :ref="`player_${curVideo.id}`"
                 />
               </div>
             </div>
@@ -97,7 +98,7 @@
               <!--  -->
               <template v-if="index <= videoArrs.length - 1">
                 <div class="video-box-top">
-                  <b>{{ videoArrs[index].Camera }}</b>
+                  <b>{{ videoArrs[index].CameraPosition }}</b>
                 </div>
                 <div
                   :class="{
@@ -106,11 +107,11 @@
                 >
                   <ali-player
                     @timeupdate="timeUpdate(e, index)"
-                    :source="videoArrs[index].VideoPath"
+                    :source="videoArrs[index].VideoPath | fixPath"
                     :markers="videoArrs[index].marks"
                     @pause="isStop = true"
                     @play="isStop = false"
-                    :ref="`player_${videoArrs[index].ID}`"
+                    :ref="`player_${videoArrs[index].id}`"
                   />
                 </div>
               </template>
@@ -118,7 +119,11 @@
           </template>
           <div class="player-control">
             <div class="progress-bar">
-              <el-tooltip placement="top" v-for="(item, index) in eventMarks" :key="index">
+              <el-tooltip
+                placement="top"
+                v-for="(item, index) in eventMarks"
+                :key="index"
+              >
                 <div slot="content">
                   {{ getTimeStr(item.offset) }}
                   <br />
@@ -132,7 +137,11 @@
                   @click="dotJump(item.offset)"
                 ></div>
               </el-tooltip>
-              <el-tooltip placement="top" v-for="(item, index) in labelMarks" :key="index">
+              <el-tooltip
+                placement="top"
+                v-for="(item, index) in labelMarks"
+                :key="index"
+              >
                 <div slot="content">
                   {{ getTimeStr(item.offset) }}
                   <br />
@@ -201,16 +210,21 @@
                 v-show="isUnusual == 1"
                 type="primary"
                 @click="addLabel(curVideo)"
-              >娣诲姞鏍囨敞</el-button>
+                >娣诲姞鏍囨敞</el-button
+              >
             </div>
             <div class="flex-box fixed-height-box">
               <label v-if="!showTable">鏍囨敞淇℃伅:</label>
               <div class="mark-list" v-if="!showTable">
-                <div class="mark" v-for="mark in curVideo.LableLst" :key="mark.ID">
+                <div
+                  class="mark"
+                  v-for="mark in curVideo.LableLst"
+                  :key="mark.ID"
+                >
                   <div class="time">
                     <span>
                       {{ pad0(Math.floor(mark.Time / 60)) }}:{{
-                      pad0(mark.Time % 60)
+                        pad0(mark.Time % 60)
                       }}
                     </span>
                     <i class="el-icon-edit" @click="editCurLabel(mark)"></i>
@@ -269,12 +283,19 @@
       <div class="label-check">
         <p class="label">闅愭偅闂:</p>
         <el-checkbox-group v-model="labelCheckedList">
-          <el-checkbox v-for="item in labelOptions" :key="item.ID" :label="item.ID">{{ item.Name }}</el-checkbox>
+          <el-checkbox
+            v-for="item in labelOptions"
+            :key="item.ID"
+            :label="item.ID"
+            >{{ item.Name }}</el-checkbox
+          >
         </el-checkbox-group>
       </div>
       <div class="btns">
         <el-button @click="cancelLabelChecked" size="small">鍙栨秷</el-button>
-        <el-button @click="submitLabelChecked" size="small" type="primary">纭畾</el-button>
+        <el-button @click="submitLabelChecked" size="small" type="primary"
+          >纭畾</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -327,6 +348,15 @@
         return {};
       },
       type: Object,
+    },
+  },
+  filters: {
+    fixPath(str) {
+      if (!str || str == undefined) {
+        return "";
+      }
+
+      return str.replace("/opt/vasystem", "");
     },
   },
   data() {
@@ -422,23 +452,23 @@
     playAll() {
       this.showPlayBtn = false;
       if (this.guid == 1) {
-        this.$refs[`player_${this.curVideo.ID}`][0].play();
+        this.$refs[`player_${this.curVideo.id}`][0].play();
         this.maxDuration = this.$refs[
-          `player_${this.curVideo.ID}`
+          `player_${this.curVideo.id}`
         ][0].getDuration();
       } else {
         this.videoArrs.forEach((v) => {
-          this.$refs[`player_${v.ID}`][0].play();
+          this.$refs[`player_${v.id}`][0].play();
         });
       }
     },
     pauseAll() {
       this.showPlayBtn = true;
       if (this.guid == 1) {
-        this.$refs[`player_${this.curVideo.ID}`][0].pause();
+        this.$refs[`player_${this.curVideo.id}`][0].pause();
       } else {
         this.videoArrs.forEach((v) => {
-          this.$refs[`player_${v.ID}`][0].pause();
+          this.$refs[`player_${v.id}`][0].pause();
         });
       }
     },
@@ -450,8 +480,8 @@
       this.showPlayBtn = false;
       let that = this;
       if (this.guid == 1) {
-        this.$refs[`player_${this.curVideo.ID}`][0].pause();
-        this.$refs[`player_${this.curVideo.ID}`][0].seek(val);
+        this.$refs[`player_${this.curVideo.id}`][0].pause();
+        this.$refs[`player_${this.curVideo.id}`][0].seek(val);
         // this.$refs[`player_${this.curVideo.ID}`][0].play();
         setTimeout(() => {
           let curT = that.$refs[
@@ -460,10 +490,9 @@
         }, 600);
       } else {
         this.videoArrs.forEach((v, i) => {
-          this.$refs[`player_${v.ID}`][0].seek(val);
-          // this.$refs[`player_${v.ID}`][0].play();
+          this.$refs[`player_${v.id}`][0].seek(val);
           if (i == 0) {
-            let curT = this.$refs[`player_${v.ID}`][0].getCurrentTime();
+            let curT = this.$refs[`player_${v.id}`][0].getCurrentTime();
           }
         });
       }
@@ -480,11 +509,11 @@
       let curT;
       if (this.guid == 1) {
         curT = Math.floor(
-          this.$refs[`player_${this.curVideo.ID}`][0].getCurrentTime()
+          this.$refs[`player_${this.curVideo.id}`][0].getCurrentTime()
         );
       } else {
         curT = Math.floor(
-          this.$refs[`player_${this.videoArrs[index].ID}`][0].getCurrentTime()
+          this.$refs[`player_${this.videoArrs[index].id}`][0].getCurrentTime()
         );
       }
       if (curT <= this.curTime) {
@@ -517,25 +546,13 @@
     },
     handleCommand(cmd) {
       let _this = this;
-
-      getCarVideos({
-        TrainNumber: cmd.TrainNumber,
-        CarNumber: cmd.CarNumber,
-        Driver1: cmd.Driver1,
-      }).then((res) => {
-        _this.allCurVideos = res.data;
-        _this.curCamera = cmd.Camera;
-        _this.curRoomVideos = _this.allCurVideos.filter((item) => {
-          return item.Camera == cmd.Camera;
-        });
-        _this.curVideo = _this.curRoomVideos.find((item) => {
-          return item.ID == cmd.ID;
-        });
-        _this.$nextTick(() => {
-          _this.$refs[`player_${_this.curVideo.ID}`][0].init();
-        });
+      _this.curVideo = cmd;
+      _this.curCamera = _this.curVideo.CameraPosition;
+      _this.$nextTick(() => {
+        const a = _this.$refs[`player_${_this.curVideo.id}`]
+        const b = _this.$refs[`player_${_this.curVideo.id}`][0]
+        _this.$refs[`player_${_this.curVideo.id}`][0].init();
       });
-
     },
     pad0(val) {
       return val < 10 ? "0" + val : val;
@@ -556,7 +573,12 @@
         res.data.forEach((item) => {
           item.marks = _this.mergeMarks(item);
         });
-        _this.curVideo = res.data.find((item) => item.ID == v.ID);
+
+        _this.curVideo = res.data.find((item) => item.id == v.id);
+
+        // 璁剧疆涓嬫媺鑿滃崟閫変腑椤�
+        _this.curCamera = _this.curVideo.CameraPosition;
+
         _this.curVideo.marks.forEach((item) => {
           if (item.type == 0) {
             _this.eventMarks.push(item);
@@ -564,21 +586,22 @@
             _this.labelMarks.push(item);
           }
         });
+
         if (_this.guid == 1) {
           _this.maxVideoTime = _this.curVideo.VideoTime;
         }
 
         _this.videoArrs = res.data.filter((item) => v.GroupID == item.GroupID);
         _this.allCurVideos = res.data;
+        console.log(_this.allCurVideos);
         _this.curRoomVideos = _this.allCurVideos.filter((item) => {
-          return item.Camera == "鍙告満瀹�";
+          return item.IsCab == "0";
         });
-
         _this.$nextTick(() => {
-          _this.$refs[`player_${_this.curVideo.ID}`][0].init();
+          _this.$refs[`player_${_this.curVideo.id}`][0].init();
           let arr = _this.maxVideoTime.split(":");
-          let min = +arr[0],
-            sec = +arr[1];
+          let min = +arr[1],
+            sec = +arr[2];
           _this.maxSecond = min * 60 + sec;
         });
       });
@@ -586,13 +609,12 @@
     getRelatedVideos(video) {
       let _this = this;
       getRelatedVideoInfo({ GroupID: video.GroupID }).then((res) => {
-        let arr = [];
-        let map = {};
         res.data.forEach((item) => {
           _this.popDownArr.push(item);
         });
+        // _this.popDownArr = res.data
         if (_this.popDownArr.length) {
-          _this.curCamera = _this.popDownArr[0].Camera;
+          _this.curCamera = _this.popDownArr[0].CameraPosition;
         }
       });
     },
@@ -603,10 +625,13 @@
       });
     },
     refreshCurVideoLabel(video) {
+      let _this = this;
+      _this.popDownArr = [];
       getRelatedVideoInfo({ GroupID: video.GroupID }).then((res) => {
-        res.data.forEach((d) => {
-          if (d.ID === video.ID) {
-            video.LableLst = d.LableLst;
+        res.data.forEach((item) => {
+          _this.popDownArr.push(item);
+          if (item.ID === video.ID) {
+            video.LableLst = item.LableLst;
           }
         });
       });
@@ -614,11 +639,22 @@
     checkVideo(video, index) {
       this.refreshCurVideoLabel(video);
       this.curVideo = video;
+      this.eventMarks = []
+      this.labelMarks = []
+      video.marks.forEach((item) => {
+         if (item.type == 0) {
+          this.eventMarks.push(item);
+        } else {
+          this.labelMarks.push(item);
+        }
+      })
+
       this.videoArrs = this.allCurVideos.filter(
         (item) => video.GroupID == item.GroupID
       );
       this.$nextTick(() => {
-        this.$refs[`player_${this.curVideo.ID}`][0].init();
+        const a = this.$refs[`player_${this.curVideo.id}`]
+        this.$refs[`player_${this.curVideo.id}`][0].init();
       });
     },
     setGuid(guid) {
@@ -628,8 +664,8 @@
         this.showLocChoise = true;
       } else {
         this.showLocChoise = false;
-        this.$refs[`player_${this.curVideo.ID}`][0].pause();
-        this.$refs[`player_${this.curVideo.ID}`][0].seek(0);
+        this.$refs[`player_${this.curVideo.id}`][0].pause();
+        this.$refs[`player_${this.curVideo.id}`][0].seek(0);
       }
       this.videoWrapArr = Math.pow(guid, 2);
       this.$nextTick(() => {
@@ -639,9 +675,7 @@
             `calc(` + 100 / guid + `%)`;
           this.$refs[`gridVideoItem_${i}`][0].style.height =
             `calc(` + 100 / guid + `%)`;
-          // this.$refs["playerWrap"].offsetHeight / guid + "px";
         }
-        // console.log(this.$refs[`player_${this.videoArrs[index].ID}`]);
       });
     },
     cancelLabelChecked() {
@@ -654,7 +688,7 @@
     submitLabelChecked() {
       let _this = this;
       let tempArr = [];
-      tempArr = this.videoArrs.map((video) => video.ID);
+      tempArr = this.videoArrs.map((video) => video.id);
       let desc = this.labelCheckedList.map((lableId) => {
         for (let label of this.labelOptions) {
           if (label.ID == lableId) {
@@ -665,11 +699,10 @@
 
       let query = {
         ID: this.selectedLabelId,
-        ParentID: tempArr.join(","),
-        ParentUniqID: this.curVideo.GroupID + "",
+        VideoIds: tempArr.join(","),
         Time: Math.round(this.setLabelTime) + "",
         Codes: this.labelCheckedList.join(","),
-        Desc: desc.join("锛�"),
+        Desc: desc.join(","),
       };
 
       editLabel(query).then((rsp) => {
@@ -700,20 +733,18 @@
       this.selectedLabelId = "";
       this.labelDialogVisible = true;
       // 淇濆瓨鐐瑰嚮鏍囨敞鐨勬椂闂�
-      this.setLabelTime = this.$refs[`player_${video.ID}`][0].getCurrentTime();
+      this.setLabelTime = this.$refs[`player_${video.id}`][0].getCurrentTime();
     },
     editCurLabel(mark) {
       this.selectedLabelId = mark.ID;
-      this.labelCheckedList = mark.Codes.split(" ,");
+      this.labelCheckedList = mark.Codes.split(",");
       this.labelDialogVisible = true;
     },
     removeCurLabel(mark) {
       let _this = this;
       let obj = {
-        Desc: mark.Desc,
-        ParentUniqID: mark.ParentUniqID,
-        Time: mark.Time,
-        ParentID: mark.ParentID
+        ID: mark.ID,
+        VideoIds: mark.VideoIds,
       };
       delLabel(obj).then((rsp) => {
         if (rsp && rsp.success) {
@@ -737,7 +768,7 @@
     },
     mergeMarks(videoInfo) {
       if (!videoInfo.EventLst || !videoInfo.LableLst) {
-        console.log("mergeMarks data null")
+        console.log("mergeMarks data null");
         return;
       }
 
@@ -759,7 +790,7 @@
     },
     setMarks(video) {
       let marks = this.mergeMarks(video);
-      this.$refs[`player_${video.ID}`][0].setProgressMarkers(marks);
+      this.$refs[`player_${video.id}`][0].setProgressMarkers(marks);
     },
   },
 };
@@ -876,7 +907,7 @@
               height: 8px;
               width: 6px;
               z-index: 1;
-              background-color: lightcoral;
+              background-color: yellowgreen;
               cursor: pointer;
               -webkit-transform: translateX(-50%);
               transform: translateX(-50%);
@@ -886,7 +917,7 @@
               height: 8px;
               width: 6px;
               z-index: 1;
-              background-color: yellowgreen;
+              background-color: lightcoral;
               cursor: pointer;
               -webkit-transform: translateX(-50%);
               transform: translateX(-50%);

--
Gitblit v1.8.0