From 1cc7750ae8f3fb5abb8d36636f0e9ebc05c61f7b Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 21 一月 2021 19:45:50 +0800
Subject: [PATCH] page: use aliplayer set progress markers. shuohuang

---
 src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue |  469 ++++------------------------------------------------------
 1 files changed, 37 insertions(+), 432 deletions(-)

diff --git a/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue b/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
index 2006669..033f1e5 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
@@ -210,7 +210,7 @@
           <el-table-column label="鎿嶄綔">
             <template slot-scope="scope">
               <div class="operation">
-                <i class="el-icon-star-off"  @click="toggleFollow(scope.row)"></i>
+                <i class="el-icon-star-off" @click="toggleFollow(scope.row)"></i>
               </div>
             </template>
           </el-table-column>
@@ -237,161 +237,8 @@
             <span>鎾斁瑙嗛</span>
           </div>
         </div>
-        <div class="content">
-          <div class="content-top">
-            <div class="grid-check">
-              <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>
-            </div>
-            <div class="video-area">
-              <div class="info-list block">
-                <p class="title-partment">鐩稿叧瑙嗛</p>
-                <!-- <div class="video-name" v-for="video in videoDetails.videoList" :key="video.id">
-                  <i class="el-icon-film"></i>
-                  <span>{{video.name}}</span>
-                </div>-->
-                <div
-                  class="video-name"
-                  :class="{'current':curVideo.ID==video.ID}"
-                  @click="checkVideo(video,index)"
-                  v-for="(video,index) in videoDetails.relativeVideos"
-                  :key="video.ID"
-                >
-                  <i class="el-icon-film"></i>
-                  <span>{{video.Event}}</span>
-                </div>
-              </div>
-              <div class="players" ref="playerWrap">
-                <template v-if="guid==1">
-                  <div
-                    class="video-item"
-                    :ref="`gridVideoItem_${index}`"
-                    v-for="(item,index) in videoWrapArr"
-                    :key="index"
-                  >
-                    <div class="currentPlayer">
-                      {{curVideo.ID}}
-                      <img :src="CLIP+curVideo.VideoCover" style="width:100px" />
-                    </div>
-                  </div>
-                </template>
-                <template v-else>
-                  <div
-                    class="video-item"
-                    :ref="`gridVideoItem_${index}`"
-                    v-for="(item,index) in videoWrapArr"
-                    :key="index"
-                  >
-                    <template v-if="index<=videoArrs.length-1">
-                      <div :class="{'currentPlayer':curVideo.ID==videoArrs[index].ID}">
-                        {{videoArrs[index].ID}}
-                        <img
-                          :src="CLIP+videoArrs[index].VideoCover"
-                          style="width:100px"
-                        />
-                      </div>
-                    </template>
-                  </div>
-                </template>
 
-                <!-- <div
-                  class="video-item"
-                  :class="{'active':item.ID==curVideo.ID}"
-                  :ref="`gridVideoItem_${index}`"
-                  v-for="(item,index) in videoWrapArr"
-                  :key="index"
-                >
-                  
-                </div>-->
-              </div>
-            </div>
-          </div>
-          <div class="content-bottom">
-            <div class="bot-left block">
-              <p class="title-partment">蹇�熸爣娉�</p>
-              <div class="flex-box" style="height:28px;">
-                <label style="padding-right:10px;">闅愭偅闂:</label>
-                <el-radio v-model="curVideo.IsUnusual" label="0">鏃犲紓甯�</el-radio>
-                <el-radio v-model="curVideo.IsUnusual" label="1">鏈夊紓甯�</el-radio>
-                <el-button
-                  icon="el-icon-plus"
-                  size="mini"
-                  v-show="curVideo.IsUnusual==1"
-                  type="primary"
-                  @click="addLabel(curVideo)"
-                >娣诲姞鏍囨敞</el-button>
-              </div>
-              <div class="flex-box">
-                <label>鏍囨敞淇℃伅:</label>
-                <div class="mark-list">
-                  <div class="mark" v-for="mark in curVideo.LableLst" :key="mark.ID">
-                    <div class="time" v-if="mark.length">
-                      <span>{{mark[0].Time}}</span>
-                      <i class="el-icon-edit" @click="editCurLabel(mark)"></i>
-                      <i
-                        class="el-icon-delete"
-                        @click="removeCurLabel(mark[0].ParentID,mark[0].Time)"
-                      ></i>
-                    </div>
-                    <div class="label-content">
-                      <span
-                        v-for="content in mark"
-                        :key="content.ID"
-                      >{{findLabelNameById(content.CodeID)}}</span>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <div class="bot-right block">
-              <p class="title-partment">瑙嗛璇︽儏</p>
-              <div class="base-info">
-                <div>
-                  <label>杞﹀彿:</label>
-                  <span>{{videoDetails.CarNumber}}</span>
-                </div>
-                <div>
-                  <label>杞︽:</label>
-                  <span>{{videoDetails.TrainNumber}}</span>
-                </div>
-                <div>
-                  <label>鏃堕棿:</label>
-                  <span>{{videoDetails.VideoDate}}</span>
-                </div>
-                <div>
-                  <label>鍙告満|鍓徃鏈�:</label>
-                  <span>{{videoDetails.Driver1}}|{{videoDetails.Driver2}}</span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </el-dialog>
-      <el-dialog
-        class="label-dialog"
-        :visible="labelDialogVisible"
-        @close="labelDialogVisible=false"
-        :append-to-body="false"
-      >
-        <div class="label-check">
-          <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-group>
-        </div>
-        <div class="btns">
-          <el-button @click="cancelLabelChecked" size="small">鍙栨秷</el-button>
-          <el-button @click="submitLabelChecked()" size="small" type="primary">纭畾</el-button>
-        </div>
+        <video-analyze :videoDetails="selectedVideo" />
       </el-dialog>
     </div>
   </div>
@@ -399,13 +246,18 @@
 
 <script>
 import { getlstInit, updateVideoAnalyze, getlst, getRelatedVideoInfo, getLabelMap, delLabel, editLabel } from '@/api/shuohuang';
+import VideoAnalyze from "./videoAnalyze"
 
 export default {
-  data () {
+  name: "SearchMain",
+  components: {
+    VideoAnalyze
+  },
+  data() {
     return {
       CLIP: 'http://192.168.20.113/',
       keyword: '',
-      searchTime: [this.$moment(new Date().getTime() - 3600 * 1000 * 24 * 3).format("YYYY-MM-DD HH:mm:ss"), this.$moment(new Date()).format("YYYY-MM-DD HH:mm:ss")],
+      searchTime: [this.$moment(new Date().getTime() - 3600 * 1000 * 24 * 5).format("YYYY-MM-DD HH:mm:ss"), this.$moment(new Date()).format("YYYY-MM-DD HH:mm:ss")],
       curTabPage: 1,
       curTablePage: 1,
       tabPageSize: 8,
@@ -417,7 +269,7 @@
       pickerOptions: {
         shortcuts: [{
           text: '浠婂ぉ',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date();
             const start = new Date();
             start.setHours(0, 0, 0);
@@ -425,7 +277,7 @@
           }
         }, {
           text: '鏄ㄥぉ',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date();
             const start = new Date();
             start.setTime(start.getTime() - 3600 * 1000 * 24);
@@ -436,7 +288,7 @@
           }
         }, {
           text: '杩戜笁澶�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date();
             const start = new Date();
             start.setTime(start.getTime() - 3600 * 1000 * 24 * 3);
@@ -444,7 +296,7 @@
           }
         }, {
           text: '杩戜竴鍛�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date();
             const start = new Date();
             start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
@@ -471,119 +323,37 @@
       ],
 
       videoDialogVisible: false,
-      videoDetails: {},
-      guid: 1,
-      curVideo: {},
-      videoArrs: [],
-      videoWrapArr: [],
       hiddenDanger: 1,
       labelDialogVisible: false,
-      labelOptions: [{ id: 'whh', name: '鏈懠鍞ゃ�佸懠鍞や笉鏍囧噯' }, { id: 'jsbz', name: '绮剧涓嶆尟銆佽繍琛屼腑鐫¤' }, { id: 'xxsj', name: '瀛︿範鍙告満鏈簲绛�' }, { id: 'myhb', name: '娌℃湁鍚庨儴鐬湜銆佷笉鎸夎瀹氬仛闃叉簻鎺柦' }],
-      labelCheckedList: [],
+      selectedVideo: {}
     }
   },
   watch: {
     checkedConfigs: {
-      handler (n, o) {
-        // let filterQuerys = [];
-        // n.forEach(config => {
-        //   let checkedOpts = config.data.filter(option => option.isChecked);
-        //   if (checkedOpts.length) {
-        //     var linkOpts = checkedOpts.map(opt => opt.name);
-        //     linkOpts = linkOpts.join(',');
-        //     let obj = {};
-        //     obj[config.NameEn] = linkOpts;
-        //     filterQuerys.push(obj);
-        //   }
-        // })
-        // console.log(filterQuerys)
-
+      handler(n, o) {
         this.filterSearchData()
       },
       deep: true
     }
   },
-  mounted () {
-    // let mockConfigs = [
-    //   { id: 'jch', isHighLevel: false, title: '鏈鸿溅鍙�', data: [{ name: '鍏ㄩ儴', id: '' }, { name: 'K24', id: 'k24' }, { name: 'G172', id: 'g172' }, { name: 'K254', id: 'k254' }, { name: 'K264', id: 'k264' }, { name: 'G132', id: 'g132' }, { name: 'K257', id: 'k257' }, { name: 'K269', id: 'k269' }, { name: 'G176', id: 'g176' }, { name: 'G137', id: 'g137' }, { name: 'K297', id: 'k297' }, { name: 'K209', id: 'k209' }, { name: 'G777', id: 'g777' }, { name: 'G337', id: 'g337' }, { name: 'K277', id: 'k277' }, { name: 'K299', id: 'k299' }, { name: 'G866', id: 'g866' }, { name: 'K877', id: 'k877' }, { name: 'K699', id: 'k699' }, { name: 'G906', id: 'g906' }, { name: 'L677', id: 'l677' }, { name: 'M987', id: 'm987' }] },
-    //   { id: 'cc', isHighLevel: false, title: '杞︽', data: [{ name: '鍏ㄩ儴', id: '' }, { name: 'SS344', id: 'SS344' }, { name: 'SS345', id: 'SS345' }, { name: 'SS765', id: 'SS765' }, { name: 'SS776', id: 'SS776' }, { name: 'SS676', id: 'SS676' }, { name: 'SS876', id: 'SS876' }, { name: 'SS779', id: 'k779' }, { name: 'SS976', id: 'SS976' },] },
-    //   { id: 'sj', isHighLevel: true, title: '鍙告満', data: [{ name: '寮犱笁', id: 'zs' }, { name: '鏉庢柉', id: "ls" }, { name: '鏉庢柉鐗�', id: "lst" }] },
-    //   { id: 'lk', isHighLevel: true, title: '璺喌', data: [{ name: '鏍囩ず鐗�', id: 'bsp' }, { name: '淇″彿鏈�', id: "xhj" }, { name: '寮亾', id: "wd" }] }
-    // ];
-
-    // mockConfigs.forEach(config => {
-    //   this.$set(config, 'isShow', true);
-    //   config.data.forEach(item => {
-    //     this.$set(item, 'isChecked', false);
-    //   })
-    //   if (config.isHighLevel) {
-    //     this.highLevelConfigs.push(config);
-    //   } else {
-    //     this.$set(config, 'isMultCheck', false);
-    //     this.$set(config, 'showMore', false);
-    //     this.optionalConfigs.push(config);
-    //   }
-    // })
-    // this.$nextTick(() => {
-    //   this.optionalConfigs.forEach(config => {
-    //     if (this.$refs[`options${config.id}`][0].scrollHeight > this.fixedOneLineHeight) {
-    //       config.showMore = true;
-    //       this.$set(config, 'isShowMore', false);
-    //     } else {
-    //       config.showMore = false;
-    //     }
-    //   });
-    //   console.log(this.optionalConfigs);
-    // });
+  mounted() {
     this.init();
-    this.renderLabelOpts();
   },
   methods: {
-    editCurLabel (mark) {
-      let arr = [];
-      mark.forEach(label => {
-        arr.push(label.CodeID)
-      });
-      this.labelCheckedList = arr;
-      this.labelDialogVisible = true;
-    },
-    removeCurLabel (ParentID, Time) {
-      delLabel({ ParentID, Time }).then(res => {
-
-      })
-    },
-    renderLabelOpts () {
-      let _this = this;
-      getLabelMap().then(res => {
-        _this.labelOptions = res.data
-      })
-    },
-    findLabelNameById (id) {
-      debugger
-      let label = this.labelOptions.find(label => label.ID == id);
-      return label.Name;
-    },
-    checkVideo (video, index) {
-      this.curVideo = video;
-      debugger
-      if (index > 0 && this.guid == 1) {
-        //this.videoWrapArr = 
-      }
-    },
-    handleTabSizeChange (size) {
+    handleTabSizeChange(size) {
       debugger
       this.tabPageSize = size;
       this.filterSearchData()
     },
-    handleTableSizeChange (size) {
+    handleTableSizeChange(size) {
       this.tablePageSize = size;
       this.filterSearchData()
     },
-    handleCurrentChange () {
+    handleCurrentChange() {
       this.filterSearchData()
     },
     //浜岀骇鏌ヨ
-    filterSearchData () {
+    filterSearchData() {
       let _this = this;
       let query = {
         KeyWord: this.keyword,
@@ -617,7 +387,7 @@
       })
     },
     //涓�绾ф煡璇�
-    init () {
+    init() {
       let _this = this;
       let query = {
         KeyWord: this.keyword,
@@ -673,7 +443,7 @@
 
       })
     },
-    toggleFollow (data) {
+    toggleFollow(data) {
       data.IsFollow = !data.IsFollow;
       this.updataVideo(data);
       if (data.IsFollow) {
@@ -683,82 +453,26 @@
         });
       }
     },
-    updataVideo (data) {
+    updataVideo(data) {
       let _this = this;
       updateVideoAnalyze(data).then(res => {
         //浜岀骇鏌ヨ
       });
     },
 
-    cancelLabelChecked () {
-      this.labelDialogVisible = false;
-    },
-    submitLabelChecked () {
-      console.log(this.labelCheckedList)
-      debugger
-      //this.curVideo
-      //this.curVideo.HotPoint[0].Time
-      editLabel({ ParentID: this.curVideo.ID + '', Time: this.curVideo.HotPoint[0].Time, CodeID: this.labelCheckedList.join(',') }).then(res => {
-        debugger
-
-      })
-
-    },
-    addLabel (video) {
-      this.labelDialogVisible = true;
-    },
-    setGuid (guid) {
+    checkVideoDetail(data) {
       let _this = this;
-      this.guid = guid;
-      // for(var i = 0; i < Math.pow(guid,2); i++){
-      //   if(i>this.videoArrs.length-1){
-      //       this.videoWrapArr[i] = this.videoArrs[i]
-      //     }else{
-      //       this.videoWrapArr[i] = {}
-      //     }
-      // }
-      this.videoWrapArr = Math.pow(guid, 2);
-
-      this.$nextTick(() => {
-        for (var i = 0; i < Math.pow(guid, 2); i++) {
-          this.$refs[`gridVideoItem_${i}`][0].style.width = this.$refs['playerWrap'].offsetWidth / guid + 'px';
-          this.$refs[`gridVideoItem_${i}`][0].style.height = this.$refs['playerWrap'].offsetHeight / guid + 'px';
-
-        }
-      })
+      _this.selectedVideo = data;
+      _this.videoDialogVisible = true;
+    },
+    checkFollow() {
 
     },
-    checkVideoDetail (data) {
-      this.videoDetails = data;
-      let _this = this;
-      getRelatedVideoInfo({ UniqeID: data.UniqeID }).then(res => {
-        _this.videoDetails.relativeVideos = res.data;
-        _this.curVideo = res.data[0];
-        _this.videoArrs = res.data;
-        // _this.videoWrapArr.push(res.data[0]);
-        _this.setGuid(1)
-        _this.videoDialogVisible = true;
-      })
-    },
-    checkFollow () {
-
-    },
-    checkType (type) {
+    checkType(type) {
       this.showType = type;
-      // let filterQuerys = [];
-      // this.checkedConfigs.forEach(config => {
-      //   let checkedOpts = config.data.filter(option => option.isChecked);
-      //   if (checkedOpts.length) {
-      //     var linkOpts = checkedOpts.map(opt => opt.name);
-      //     linkOpts = linkOpts.join(',');
-      //     let obj = {};
-      //     obj[config.NameEn] = linkOpts;
-      //     filterQuerys.push(obj);
-      //   }
-      // })
       this.filterSearchData()
     },
-    clearCheckedConfigs () {
+    clearCheckedConfigs() {
       this.checkedConfigs.forEach(config => {
         config.isShow = true;
         config.data.forEach(d => {
@@ -768,7 +482,7 @@
       this.checkedConfigs = [];
       this.showAdvance = true;
     },
-    removeCheckedConfig (config) {
+    removeCheckedConfig(config) {
       config.isShow = true;
       if (config.IsAdvanced) {
         this.showAdvance = true;
@@ -779,7 +493,7 @@
       let index = this.checkedConfigs.findIndex(one => one.id == config.id);
       this.checkedConfigs.splice(index, 1);
     },
-    checkOption (config, option) {
+    checkOption(config, option) {
       if (option) {
         option.isChecked = true;
       }
@@ -796,20 +510,20 @@
 
     },
 
-    cancleMultCheck (config) {
+    cancleMultCheck(config) {
       config.isMultCheck = false;
       config.data.forEach(opt => {
         opt.isChecked = false;
       });
     },
-    handleSelect (key, keyPath) {
+    handleSelect(key, keyPath) {
 
     },
-    showMore (config) {
+    showMore(config) {
       config.isShowMore = !config.isShowMore;
       this.$refs[`options${config.id}`][0].style.height = config.isShowMore ? this.$refs[`options${config.id}`][0].scrollHeight + 'px' : this.fixedOneLineHeight + 'px';
     },
-    toggleMultCheck (config) {
+    toggleMultCheck(config) {
       config.isMultCheck = !config.isMultCheck;
       this.optionalConfigs.forEach(conf => {
         if (conf.id == config.id) {
@@ -818,7 +532,7 @@
         conf.isMultCheck = false;
       })
     },
-    dataSearch () {
+    dataSearch() {
       console.log(this.checkedConfigs);
       this.$forceUpdate();
     },
@@ -1102,115 +816,6 @@
       }
       .title {
         font-size: 18px;
-      }
-      .content {
-        padding: 15px;
-        text-align: left;
-        .content-top {
-          margin-bottom: 10px;
-          .grid-check {
-            text-align: right;
-            margin-bottom: 6px;
-            span {
-              font-size: 20px;
-              color: #cacaca;
-              padding-left: 12px;
-              cursor: pointer;
-              &.activegongge {
-                color: #3d68e1;
-              }
-            }
-          }
-          .video-area {
-            display: flex;
-            .info-list {
-              width: 160px;
-              margin-right: 10px;
-              .video-name {
-                cursor: pointer;
-                color: #777;
-                margin-bottom: 10px;
-                &.current {
-                  color: #409eff;
-                }
-                i {
-                  padding-right: 4px;
-                }
-              }
-            }
-            .players {
-              width: 960px;
-              height: 540px;
-              display: flex;
-              flex-wrap: wrap;
-              .video-item {
-                background: black;
-                border: 1px solid #fff;
-                box-sizing: border-box;
-                .currentPlayer {
-                  border: 2px solid aqua;
-                }
-              }
-            }
-          }
-        }
-        .content-bottom {
-          display: flex;
-          .bot-left {
-            flex: 1;
-            .flex-box {
-              align-items: baseline;
-              label {
-                padding-right: 10px;
-              }
-              .mark-list {
-                .time {
-                  cursor: pointer;
-                  font-size: 15px;
-                  font-weight: bold;
-                  color: #409eff;
-                  span {
-                    padding-right: 5px;
-                  }
-                  i[class^='el-icon'] {
-                    padding: 3px;
-                  }
-                }
-                .label-content {
-                  font-size: 13px;
-                  padding: 4px 0;
-                  color: #888;
-                }
-              }
-            }
-          }
-          .bot-right {
-            width: 210px;
-            margin-left: 10px;
-            label {
-              color: #999;
-              padding-right: 8px;
-            }
-          }
-        }
-      }
-    }
-    .label-dialog {
-      .el-dialog {
-        width: 700px;
-        .label-check {
-          min-height: 400px;
-          margin-bottom: 20px;
-          .el-checkbox-group {
-            display: flex;
-            flex-wrap: wrap;
-            > label {
-              width: 50%;
-              text-align: left;
-              margin: 0;
-            }
-          }
-        }
       }
     }
   }

--
Gitblit v1.8.0