From 8ef5e2618d6fed0bbfea1aca99ca010b1e041718 Mon Sep 17 00:00:00 2001
From: wangjunyi <junyi.wang@hiscene.com>
Date: 星期四, 27 四月 2023 17:39:45 +0800
Subject: [PATCH] 解决国标设备-通道-设备录像处的视频下载问题

---
 web_src/src/components/dialog/recordDownload.vue |   62 ++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 26 deletions(-)

diff --git a/web_src/src/components/dialog/recordDownload.vue b/web_src/src/components/dialog/recordDownload.vue
index c50e4ce..c90cf13 100644
--- a/web_src/src/components/dialog/recordDownload.vue
+++ b/web_src/src/components/dialog/recordDownload.vue
@@ -6,18 +6,6 @@
         <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&#45;&#45;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-col>
     </el-row>
@@ -51,6 +39,7 @@
           taskId: null,
           getProgressRun: false,
           getProgressForFileRun: false,
+          timer: null
 
         };
     },
@@ -66,7 +55,7 @@
             this.percentage = 0.0;
             this.getProgressTimer()
         },
-        getProgressTimer(){
+        getProgressTimer: function (){
           if (!this.getProgressRun) {
             return;
           }
@@ -84,22 +73,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 +143,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 +161,7 @@
           }
           setTimeout( ()=>{
             if (!this.showDialog) return;
-            this.getProgressForFile(this.getProgressForFileTimer())
+            this.getProgressForFile(this.getProgressForFileTimer)
           }, 1000)
         },
         getProgressForFile: function (callback){
@@ -173,8 +176,15 @@
             }
           }).then((res) => {
             console.log(res)
-            if (res.data.code == 0) {
-                this.percentage = parseFloat(res.data.data.percentage)*100
+            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)

--
Gitblit v1.8.0