From 9f16b5c553b479ea12fe368a7ecc748872ea8b98 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 12 六月 2025 11:11:27 +0800 Subject: [PATCH] 修改配置文件 --- web_src/src/components/dialog/recordDownload.vue | 113 +++++++++++++------------------------------------------- 1 files changed, 26 insertions(+), 87 deletions(-) diff --git a/web_src/src/components/dialog/recordDownload.vue b/web_src/src/components/dialog/recordDownload.vue old mode 100644 new mode 100755 index 7a94540..c78cd1c --- a/web_src/src/components/dialog/recordDownload.vue +++ b/web_src/src/components/dialog/recordDownload.vue @@ -6,8 +6,7 @@ <el-progress :percentage="percentage"></el-progress> </el-col> <el-col :span="6" > - <el-button icon="el-icon-download" v-if="percentage < 100" size="mini" title="鐐瑰嚮涓嬭浇鍙皢浠ョ紦瀛橀儴鍒嗕笅杞藉埌鏈湴" @click="download()">鍋滄缂撳瓨骞朵笅杞�</el-button> - <el-button icon="el-icon-download" v-if="downloadFile" size="mini" title="鐐瑰嚮涓嬭浇" @click="downloadFileClientEvent()">鐐瑰嚮涓嬭浇</el-button> + <el-button icon="el-icon-download" v-if="downloadFile" size="mini" title="鐐瑰嚮涓嬭浇" @click="downloadFileClientEvent()">涓嬭浇</el-button> </el-col> </el-row> </el-dialog> @@ -27,7 +26,7 @@ }, data() { return { - title: "鍥涘�嶉�熶笅杞戒腑...", + title: "涓嬭浇涓�...", deviceId: "", channelId: "", app: "", @@ -39,7 +38,6 @@ streamInfo: null, taskId: null, getProgressRun: false, - getProgressForFileRun: false, timer: null, downloadFile: null, @@ -62,7 +60,7 @@ return; } if (this.percentage == 100 ) { - this.getFileDownload(); + return; } setTimeout( ()=>{ @@ -75,13 +73,21 @@ method: 'get', url: `/api/gb_record/download/progress/${this.deviceId}/${this.channelId}/${this.stream}` }).then((res)=> { - console.log(res) if (res.data.code === 0) { this.streamInfo = res.data.data; if (parseFloat(res.data.progress) == 1) { this.percentage = 100; }else { this.percentage = (parseFloat(res.data.data.progress)*100).toFixed(1); + } + if (this.streamInfo.downLoadFilePath) { + if (location.protocol === "https:") { + this.downloadFile = this.streamInfo.downLoadFilePath.httpsPath; + }else { + this.downloadFile = this.streamInfo.downLoadFilePath.httpPath; + } + this.getProgressRun = false; + this.downloadFileClientEvent() } if (callback)callback(); }else { @@ -108,24 +114,11 @@ } this.showDialog=false; this.getProgressRun = false; - this.getProgressForFileRun = false; }, gbScale: function (scale){ this.scale = scale; }, - download: function (){ - this.getProgressRun = false; - if (this.streamInfo != null ) { - if (this.streamInfo.progress < 1) { - // 鍙戦�佸仠姝㈢紦瀛� - this.stopDownloadRecord((res)=>{ - this.getFileDownload() - }) - }else { - this.getFileDownload() - } - } - }, + stopDownloadRecord: function (callback) { this.$axios({ method: 'get', @@ -134,74 +127,20 @@ if (callback) callback(res) }); }, - getFileDownload: function (){ - this.$axios({ - method: 'get', - url:`/record_proxy/${this.mediaServerId}/api/record/file/download/task/add`, - params: { - app: this.app, - stream: this.stream, - startTime: null, - endTime: null, - } - }).then((res) =>{ - if (res.data.code === 0 ) { - // 鏌ヨ杩涘害 - this.title = "褰曞儚鏂囦欢澶勭悊涓�..." - this.taskId = res.data.data; - this.percentage = 0.0; - this.getProgressForFileRun = true; - this.getProgressForFileTimer(); - } - }).catch(function (error) { - console.log(error); - }); - }, - getProgressForFileTimer: function (){ - if (!this.getProgressForFileRun || this.percentage == 100) { - return; - } - setTimeout( ()=>{ - if (!this.showDialog) return; - this.getProgressForFile(this.getProgressForFileTimer) - }, 1000) - }, - getProgressForFile: function (callback){ - this.$axios({ - method: 'get', - url:`/record_proxy/${this.mediaServerId}/api/record/file/download/task/list`, - params: { - app: this.app, - stream: this.stream, - taskId: this.taskId, - isEnd: true, - } - }).then((res) => { - console.log(res) - if (res.data.code === 0) { - if (res.data.data.length === 0){ - this.percentage = 0 - // 寰�寰�鍦ㄥ娆¤姹傚悗锛堝疄楠屼簲鍒嗛挓鐨勮棰戞槸涓夋璇锋眰锛夛紝鎵嶄細杩斿洖鏁版嵁锛岀涓�娆¤姹傞�氬父鏄繑鍥炵┖鏁扮粍 - if (callback)callback() - return - } - // res.data.data搴旀槸鏁扮粍绫诲瀷 - this.percentage = parseFloat(res.data.data[0].percentage)*100 - if (res.data.data[0].percentage === '1') { - this.getProgressForFileRun = false; - this.downloadFile = res.data.data[0].downloadFile - this.title = "鏂囦欢澶勭悊瀹屾垚锛岀偣鍑绘寜鎵笅杞�" - // window.open(res.data.data[0].downloadFile) - }else { - if (callback)callback() - } - } - }).catch(function (error) { - console.log(error); - }); - }, downloadFileClientEvent: function (){ - window.open(this.downloadFile ) + // window.open(this.downloadFile ) + + let x = new XMLHttpRequest(); + x.open("GET", this.downloadFile, true); + x.responseType = 'blob'; + x.onload=(e)=> { + let url = window.URL.createObjectURL(x.response) + let a = document.createElement('a'); + a.href = url + a.download = this.deviceId + "-" + this.channelId + ".mp4"; + a.click() + } + x.send(); } }, destroyed() { -- Gitblit v1.8.0