zhangzengfei
2021-06-17 d71fd5702c0dca993742cb421e7203eafefd2d97
src/pages/shuohuangMonitorAnalyze/components/videoAnalyze.vue
@@ -17,7 +17,7 @@
              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>
@@ -76,7 +76,7 @@
                  @pause="isStop = true"
                  @play="isStop = false"
                  @timeupdate="timeUpdate"
                  :source="curVideo.VideoPath"
                  :source="curVideo.VideoPath | fixPath"
                  :markers="curVideo.marks"
                  :ref="`player_${curVideo.ID}`"
                />
@@ -97,7 +97,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,7 +106,7 @@
                >
                  <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"
@@ -329,6 +329,15 @@
      type: Object,
    },
  },
  filters: {
    fixPath(str) {
      if (!str || str == undefined) {
        return ""
      }
      return str.replace("/opt/vasystem", "")
    }
  },
  data() {
    return {
      guid: 1,
@@ -387,7 +396,7 @@
    this.renderLabelOpts();
    this.setGuid(1);
    this.getCurVideos(this.videoDetails);
    this.getRelatedVideos(this.videoDetails);
    // this.getRelatedVideos(this.videoDetails);
  },
  destroyed() {
    this.videoArrs.length = 0;
@@ -517,24 +526,31 @@
    },
    handleCommand(cmd) {
      let _this = this;
      _this.curVideo = cmd;
      _this.curCamera = _this.curVideo.CameraPosition;
      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.$nextTick(() => {
        _this.$refs[`player_${_this.curVideo.ID}`][0].init();
      });
      // let _this = this;
      // console.log(cmd)
      // getCarVideos({
      //   TrainNumber: cmd.TrainNumber,
      //   CarNumber: cmd.CarNumber,
      //   Driver1: cmd.Driver1,
      // }).then((res) => {
      //   _this.allCurVideos = res.data;
      //   _this.curCamera = cmd.CameraPosition;
      //   _this.curRoomVideos = _this.allCurVideos.filter((item) => {
      //     return item.CameraPosition == cmd.CameraPosition;
      //   });
      //   _this.curVideo = _this.curRoomVideos.find((item) => {
      //     return item.ID == cmd.ID;
      //   });
      //   _this.$nextTick(() => {
      //     _this.$refs[`player_${_this.curVideo.ID}`][0].init();
      //   });
      // });
    },
    pad0(val) {
@@ -553,10 +569,23 @@
        CarNumber: v.CarNumber,
        Driver1: v.Driver1,
      }).then((res) => {
        // 填充单窗口的下拉菜单
        res.data.forEach((item) => {
          _this.popDownArr.push(item);
        });
        // if (_this.popDownArr.length) {
        //   _this.curCamera = _this.popDownArr[0].CameraPosition;
        // }
        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,6 +593,7 @@
            _this.labelMarks.push(item);
          }
        });
        if (_this.guid == 1) {
          _this.maxVideoTime = _this.curVideo.VideoTime;
        }
@@ -571,14 +601,13 @@
        _this.videoArrs = res.data.filter((item) => v.GroupID == item.GroupID);
        _this.allCurVideos = res.data;
        _this.curRoomVideos = _this.allCurVideos.filter((item) => {
          return item.Camera == "司机室";
          return item.CameraPosition.indexOf("司机室") >= 0;
        });
        _this.$nextTick(() => {
          _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;
        });
      });
@@ -592,7 +621,7 @@
          _this.popDownArr.push(item);
        });
        if (_this.popDownArr.length) {
          _this.curCamera = _this.popDownArr[0].Camera;
          _this.curCamera = _this.popDownArr[0].CameraPosition;
        }
      });
    },
@@ -654,7 +683,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 +694,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) => {