From 4604aaea99925415db8d9efe1d7e68d6f59e93c8 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期日, 02 七月 2023 13:53:45 +0800 Subject: [PATCH] 优化语音对讲支持根据设备设置释放收到ACK后开始发流 --- web_src/src/components/dialog/recordDownload.vue | 80 +++++++++++++++++++++++++--------------- 1 files changed, 50 insertions(+), 30 deletions(-) diff --git a/web_src/src/components/dialog/recordDownload.vue b/web_src/src/components/dialog/recordDownload.vue index 6b7ca1f..7a94540 100644 --- a/web_src/src/components/dialog/recordDownload.vue +++ b/web_src/src/components/dialog/recordDownload.vue @@ -6,19 +6,8 @@ <el-progress :percentage="percentage"></el-progress> </el-col> <el-col :span="6" > -<!-- <el-dropdown size="mini" title="鎾斁鍊嶉��" style="margin-left: 1px;" @command="gbScale">--> -<!-- <el-button-group>--> -<!-- <el-button size="mini" style="width: 100%">--> -<!-- {{scale}}鍊嶉�� <i class="el-icon-arrow-down el-icon--right"></i>--> -<!-- </el-button>--> -<!-- </el-button-group>--> -<!-- <el-dropdown-menu slot="dropdown">--> -<!-- <el-dropdown-item command="1">1鍊嶉��</el-dropdown-item>--> -<!-- <el-dropdown-item command="2">2鍊嶉��</el-dropdown-item>--> -<!-- <el-dropdown-item command="4">4鍊嶉��</el-dropdown-item>--> -<!-- </el-dropdown-menu>--> -<!-- </el-dropdown>--> <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-col> </el-row> </el-dialog> @@ -33,7 +22,7 @@ export default { name: 'recordDownload', created() { - + window.addEventListener('beforeunload', this.stopDownloadRecord) }, data() { @@ -51,6 +40,8 @@ taskId: null, getProgressRun: false, getProgressForFileRun: false, + timer: null, + downloadFile: null, }; }, @@ -66,7 +57,7 @@ this.percentage = 0.0; this.getProgressTimer() }, - getProgressTimer(){ + getProgressTimer: function (){ if (!this.getProgressRun) { return; } @@ -84,22 +75,36 @@ method: 'get', url: `/api/gb_record/download/progress/${this.deviceId}/${this.channelId}/${this.stream}` }).then((res)=> { - console.log(res) - console.log(res.data.progress) - this.streamInfo = res.data; - if (parseFloat(res.data.progress) == 1) { - this.percentage = 100; + 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 (callback)callback(); }else { - this.percentage = (res.data.progress*100).toFixed(1); + this.$message({ + showClose: true, + message: res.data.msg, + type: "error", + }); + this.close(); } - if (callback)callback(); - }).catch((e) =>{ + }).catch((e) =>{ + console.log(e) }); }, close: function (){ - if (this.streamInfo.progress < 100) { + if (this.streamInfo.progress < 1) { this.stopDownloadRecord(); + } + + if (this.timer !== null) { + window.clearTimeout(this.timer); + this.timer = null; } this.showDialog=false; this.getProgressRun = false; @@ -140,7 +145,7 @@ endTime: null, } }).then((res) =>{ - if (res.data.code === 0 && res.data.msg === "success") { + if (res.data.code === 0 ) { // 鏌ヨ杩涘害 this.title = "褰曞儚鏂囦欢澶勭悊涓�..." this.taskId = res.data.data; @@ -158,7 +163,7 @@ } setTimeout( ()=>{ if (!this.showDialog) return; - this.getProgressForFile(this.getProgressForFileTimer()) + this.getProgressForFile(this.getProgressForFileTimer) }, 1000) }, getProgressForFile: function (callback){ @@ -172,12 +177,21 @@ isEnd: true, } }).then((res) => { - if (res.data.code == 0) { - this.percentage = parseFloat(res.data.data.percentage)*100 + 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; - window.open(res.data.data[0].downloadFile) - this.close(); + this.downloadFile = res.data.data[0].downloadFile + this.title = "鏂囦欢澶勭悊瀹屾垚锛岀偣鍑绘寜鎵笅杞�" + // window.open(res.data.data[0].downloadFile) }else { if (callback)callback() } @@ -185,7 +199,13 @@ }).catch(function (error) { console.log(error); }); - } + }, + downloadFileClientEvent: function (){ + window.open(this.downloadFile ) + } + }, + destroyed() { + window.removeEventListener('beforeunload', this.stopDownloadRecord) } }; </script> -- Gitblit v1.8.0