From 86a701ce885871d2468ec31eb13be5595673a01b Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 28 三月 2024 10:24:13 +0800
Subject: [PATCH] Merge branch 'master' into dev/abl支持
---
web_src/src/components/dialog/recordDownload.vue | 111 ++++++++++++-------------------------------------------
1 files changed, 25 insertions(+), 86 deletions(-)
diff --git a/web_src/src/components/dialog/recordDownload.vue b/web_src/src/components/dialog/recordDownload.vue
index 220da8b..c78cd1c 100755
--- 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>
@@ -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:`/api/cloud/record/task/add`,
- params: {
- app: this.app,
- stream: this.stream,
- mediaServerId: this.mediaServerId,
- 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:`/api/cloud/record/task/list`,
- params: {
- mediaServerId: this.mediaServerId,
- 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