From efff5c8410c9657915eb05615c13c2de7421c61a Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 27 七月 2023 17:38:11 +0800
Subject: [PATCH] 修改文件下载不成功问题

---
 Source/UBCS-WEB/src/components/file/main.vue |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/file/main.vue b/Source/UBCS-WEB/src/components/file/main.vue
index 2391abf..cb4d046 100644
--- a/Source/UBCS-WEB/src/components/file/main.vue
+++ b/Source/UBCS-WEB/src/components/file/main.vue
@@ -65,6 +65,7 @@
 import {mapGetters} from "vuex";
 import {dateFormat} from "@/util/date";
 import {validatenull} from "@/util/validate";
+import func from "@/util/func";
 
 export default {
   props: ["options","visible","ownbizOid"],
@@ -380,16 +381,41 @@
       let data=new FormData();
       if(row && row.oid){
         data.append('fileOids',row.oid)
-        download(data)
+        this.downloadFile(data);
       }else{
         if (this.selectionList.length === 0) {
           this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
           return;
         }
         data.append('fileOids',this.oids)
-        download(data);
+        this.downloadFile(data);
       }
     },
+    downloadFile(data){
+      download(data).then(res=>{
+        // console.log(res);
+        if(res){
+          const fileNames = res.headers['content-disposition'].split(";");
+          let characterSet = fileNames[2].split("filename*=")[1];
+          let fileName = decodeURI(fileNames[1].split("filename=")[1],characterSet);
+          // console.log(fileName)
+          let blob = new Blob([res.data], {
+            type: res.data.type + ";charset=utf-8",
+          });
+          let src = window.URL.createObjectURL(blob);
+          if (src) {
+            let link = document.createElement("a");
+            link.style.display = "none";
+            link.href = src;
+            link.setAttribute("download", fileName);
+            document.body.appendChild(link);
+            link.click();
+            document.body.removeChild(link); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌
+            window.URL.revokeObjectURL(src); //閲婃斁鎺塨lob瀵硅薄
+          }
+        }
+      });
+    },
     rowDel(row) {
       this.$confirm("纭畾灏嗛�夋嫨鏂囦欢鍒犻櫎?", {
         confirmButtonText: "纭畾",

--
Gitblit v1.9.3