From 8fed463f79b9756bbb918163fbdc5bba2057ed54 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Tue, 10 Jan 2023 14:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9B=BD=E6=A0=87=E5=BD=95?= =?UTF-8?q?=E5=83=8FUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web_src/src/components/GBRecordDetail.vue | 75 ++++++++++++++--------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/web_src/src/components/GBRecordDetail.vue b/web_src/src/components/GBRecordDetail.vue index feb2443f..89a26afd 100644 --- a/web_src/src/components/GBRecordDetail.vue +++ b/web_src/src/components/GBRecordDetail.vue @@ -41,10 +41,25 @@
+ + + + + - + 倍速 @@ -74,7 +89,7 @@ :marks="playTimeSliderMarks">
-
+
@@ -100,9 +115,6 @@ deviceId: this.$route.params.deviceId, channelId: this.$route.params.channelId, recordsLoading: false, - sliderTime: 0, - seekTime: 0, - recordStartTime: 0, streamId: "", hasAudio: false, detailFiles: [], @@ -129,7 +141,10 @@ "height": this.winHeight + "px", }, winHeight: window.innerHeight - 240, - playTime: 0, + playTime: null, + timeRange: null, + startTime: null, + endTime: null, playTimeSliderMarks: { 0: "00:00", 3600: "01:00", @@ -166,6 +181,7 @@ this.recordListStyle.height = this.winHeight + "px"; this.playerStyle["height"] = this.winHeight + "px"; this.chooseDate = moment().format('YYYY-MM-DD') + this.setTime(this.chooseDate + " 00:00:00", this.chooseDate + " 23:59:59"); this.dateChange(); }, destroyed() { @@ -178,11 +194,9 @@ } this.recordsLoading = true; this.detailFiles = []; - let startTime = this.chooseDate + " 00:00:00"; - let endTime = this.chooseDate + " 23:59:59"; this.$axios({ method: 'get', - url: '/api/gb_record/query/' + this.deviceId + '/' + this.channelId + '?startTime=' + startTime + '&endTime=' + endTime + url: '/api/gb_record/query/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' + this.endTime }).then((res)=>{ this.recordsLoading = false; if(res.data.code === 0) { @@ -205,33 +219,37 @@ moment: function (v) { return moment(v) }, + setTime: function (startTime, endTime){ + this.startTime = startTime; + this.endTime = endTime; + let start = (new Date(this.startTime).getTime() - new Date(this.chooseDate + " 00:00:00").getTime())/1000; + let end = (new Date(this.endTime).getTime() - new Date(this.chooseDate + " 00:00:00").getTime())/1000; + console.log(start) + console.log(end) + this.playTime = [start, end]; + this.timeRange = [startTime, endTime]; + }, videoError: function (e) { console.log("播放器错误:" + JSON.stringify(e)); }, checkedFile(file){ this.chooseFile = file; + this.setTime(file.startTime, file.endTime); // 开始回放 - this.playRecord(file) - + this.playRecord() }, - playRecord: function (row) { + playRecord: function () { - let startTime = row.startTime - this.recordStartTime = row.startTime - this.showTimeText = row.startTime.split(" ")[1] - let endTime = row.endTime - this.sliderTime = 0; - this.seekTime = new Date(endTime).getTime() - new Date(startTime).getTime(); if (this.streamId !== "") { this.stopPlayRecord(()=> { this.streamId = ""; - this.playRecord(row); + this.playRecord(); }) } else { this.$axios({ method: 'get', - url: '/api/playback/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + startTime + '&endTime=' + - endTime + url: '/api/playback/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' + + this.endTime }).then((res)=> { if (res.data.code === 0) { this.streamInfo = res.data.data; @@ -256,7 +274,7 @@ method: 'get', url: '/api/playback/resume/' + this.streamId }).then((res)=> { - this.$refs[this.activePlayer].play(this.videoUrl) + this.$refs["recordVideoPlayer"].play(this.videoUrl) }); }, gbPause(){ @@ -347,19 +365,18 @@ return this.videoUrl; }, + timePickerChange: function (val){ + this.setTime(val[0], val[1]) + }, playTimeChange(val){ console.log(val) - let maxTime = this.getTimeForFile(this.detailFiles[this.detailFiles.length - 1])[1]; let startTimeStr = moment(new Date(this.chooseDate + " 00:00:00").getTime() + val[0]*1000).format("YYYY-MM-DD HH:mm:ss"); let endTimeStr = moment(new Date(this.chooseDate + " 00:00:00").getTime() + val[1]*1000).format("YYYY-MM-DD HH:mm:ss"); - console.log(startTimeStr); - console.log(endTimeStr); - this.checkedFile({ - startTime: startTimeStr, - endTime: endTimeStr, - }); + this.setTime(startTimeStr, endTimeStr) + + this.playRecord(); }, setSliderFit() { if (this.sliderMIn === 0 && this.sliderMax === 86400) {