| | |
| | | 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> |
| | | |
| | |
| | | @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> |
| | |
| | | <!-- --> |
| | | <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="{ |
| | |
| | | > |
| | | <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> |
| | |
| | | type: Object, |
| | | }, |
| | | }, |
| | | filters: { |
| | | fixPath(str) { |
| | | if (!str || str == undefined) { |
| | | return "" |
| | | } |
| | | |
| | | return str.replace("/opt/vasystem", "") |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | guid: 1, |
| | |
| | | this.renderLabelOpts(); |
| | | this.setGuid(1); |
| | | this.getCurVideos(this.videoDetails); |
| | | this.getRelatedVideos(this.videoDetails); |
| | | // this.getRelatedVideos(this.videoDetails); |
| | | }, |
| | | destroyed() { |
| | | this.videoArrs.length = 0; |
| | |
| | | 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(); |
| | | }); |
| | | } |
| | | }, |
| | |
| | | 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[ |
| | |
| | | }, 600); |
| | | } else { |
| | | this.videoArrs.forEach((v, i) => { |
| | | this.$refs[`player_${v.ID}`][0].seek(val); |
| | | this.$refs[`player_${v.id}`][0].seek(val); |
| | | // this.$refs[`player_${v.ID}`][0].play(); |
| | | if (i == 0) { |
| | | let curT = this.$refs[`player_${v.ID}`][0].getCurrentTime(); |
| | | let curT = this.$refs[`player_${v.id}`][0].getCurrentTime(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | 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) { |
| | |
| | | }, |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | _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; |
| | | _this.curRoomVideos = _this.allCurVideos.filter((item) => { |
| | | return item.Camera == "司机室"; |
| | | return item.CameraPosition.indexOf("司机室") >= 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; |
| | | }); |
| | | }); |
| | |
| | | _this.popDownArr.push(item); |
| | | }); |
| | | if (_this.popDownArr.length) { |
| | | _this.curCamera = _this.popDownArr[0].Camera; |
| | | _this.curCamera = _this.popDownArr[0].CameraPosition; |
| | | } |
| | | }); |
| | | }, |
| | |
| | | (item) => video.GroupID == item.GroupID |
| | | ); |
| | | this.$nextTick(() => { |
| | | this.$refs[`player_${this.curVideo.ID}`][0].init(); |
| | | this.$refs[`player_${this.curVideo.id}`][0].init(); |
| | | }); |
| | | }, |
| | | setGuid(guid) { |
| | |
| | | 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(() => { |
| | |
| | | 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) { |
| | |
| | | |
| | | 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) => { |
| | |
| | | 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; |
| | |
| | | }, |
| | | setMarks(video) { |
| | | let marks = this.mergeMarks(video); |
| | | this.$refs[`player_${video.ID}`][0].setProgressMarkers(marks); |
| | | this.$refs[`player_${video.id}`][0].setProgressMarkers(marks); |
| | | }, |
| | | }, |
| | | }; |