From 6301694e7740760917474044a729ffb6d4e39192 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 24 一月 2024 11:59:23 +0800
Subject: [PATCH] 11

---
 src/views/project/fund/applyDetail/index.vue |  226 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 164 insertions(+), 62 deletions(-)

diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index 9e193b1..6f0703c 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -1126,6 +1126,8 @@
               <!-- <img :src="pdfimg" /> -->
               <el-image
                 style="width: 95%; height: 90%"
+                @error="handleImageError"
+                @load="handleImageLoad"
                 :src="pdfimg"
                 :preview-src-list="pdfimgsrcList"
               >
@@ -1229,6 +1231,8 @@
               <!-- <img :src="pdfimg" /> -->
               <el-image
                 style="width: 95%; height: 90%"
+                @error="handleImageError"
+                @load="handleImageLoad"
                 :src="invoicepdfimg"
                 :preview-src-list="invoicepdfimgsrcList"
               >
@@ -1421,7 +1425,7 @@
       businessName: "",
       //鎿嶄綔绫诲瀷
       operationType: "",
-
+      Loadornot: false,
       //褰撳墠鍗曟嵁id
       curId: 0,
       //褰撳墠閫変腑鎹愮尞妗堜緥
@@ -1655,6 +1659,7 @@
       activeName: 1, //鏂囦欢绫诲瀷
       //涓婁紶闄勪欢璺緞
       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
+      ICDtoken: getToken(),
       //鏂囦欢涓婁紶token
       headers: {
         Authorization: "Bearer " + getToken()
@@ -1754,14 +1759,10 @@
       if (string.includes("9091")) {
         const index = string.indexOf("9091");
         this.Networkheader = string.slice(0, index + 4); // 鎴彇9091鍙婂叾鍓嶉儴瀛楃
-        this.Networkheader = "http://slb.hospitalstar.com:9091";
       } else {
         const index = string.indexOf("8032");
         this.Networkheader = string.slice(0, index + 4); // 鎴彇8032鍙婂叾鍓嶉儴瀛楃
-        this.Networkheader = "http://slb.hospitalstar.com:9091";
       }
-      this.Networkheader = "http://slb.hospitalstar.com:9091";
-
     },
     /** 閫氳繃鍙傛暟鑾峰彇涓氬姟绫诲瀷 */
     getroute() {
@@ -3099,26 +3100,45 @@
     totalprint(e) {
       // const id =this.row.id
       getdownloadBX(e).then(res => {
-        if (res.downloadUrl) {
-          var fileUrl = res;
-          //鑾峰彇褰撳墠缃戝潃
-          var urlBase = process.env.VUE_APP_BASE_API;
-          var curWWWPath = window.document.location.href;
-          var pos = curWWWPath.indexOf(window.document.location.pathname);
-          // 鍒涘缓a鏍囩
-          var aEle = document.createElement("a");
-          aEle.href =
-            curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
-          aEle.click();
-          this.$alert("涓嬭浇鎴愬姛", "鎻愮ず", {
-            confirmButtonText: "纭畾",
-            type: "success"
+        var fileUrl = res;
+        //鑾峰彇褰撳墠缃戝潃
+        var urlBase = process.env.VUE_APP_BASE_API;
+        var curWWWPath = window.document.location.href;
+        var pos = curWWWPath.indexOf(window.document.location.pathname);
+        // 鍒涘缓a鏍囩
+        var aEle = document.createElement("a");
+        aEle.href =
+          curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
+        console.log(aEle.href);
+        // 娣诲姞Authorization澶撮儴
+        fetch(aEle.href, {
+          headers: this.headers
+        })
+          .then(response => {
+            // 灏嗘枃浠朵笅杞介摼鎺ヤ綔涓篵lob瀵硅薄杩涜涓嬭浇
+            return response.blob();
+          })
+          .then(blob => {
+            const url = window.URL.createObjectURL(new Blob([blob]));
+            console.log(url);
+            const link = document.createElement("a");
+            link.href = url;
+            const name = fileUrl["downloadName"];
+            link.setAttribute("download", name); // 鏇挎崲file.pdf涓哄疄闄呯殑鏂囦欢鍚�
+            document.body.appendChild(link);
+            link.click();
+            link.parentNode.removeChild(link);
           });
-        }
       });
     },
 
-    //鏂囦欢涓婁紶
+    handleImageError(e) {
+      // 鍔犺浇澶辫触
+    },
+    handleImageLoad(e) {
+      // 鍥剧墖鍔犺浇鎴愬姛鏃舵墽琛岀殑鎿嶄綔
+      console.log("Image loaded successfully");
+    },
     handleUploadError() {},
     remove(file, fileList) {
       const rbDetails = [...this.rbDetails];
@@ -3133,49 +3153,88 @@
 
     uploadSccess(response, file, fileList) {
       this.rbDetails;
+      const config = {
+        headers: { Authorization: "Bearer " + this.ICDtoken }
+      };
+      const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
       //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
       if (this.activeName == 1) {
         if (response.code == 200) {
-          // this.form.filename = file.raw.name;
           this.previewpdf = true;
+
+          fetch(pdfimg, config)
+            .then(response => response.blob())
+            .then(blob => {
+              // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+              this.pdfimg = URL.createObjectURL(blob);
+              this.pdfimgsrcList.push(URL.createObjectURL(blob));
+              this.fileListto.push({
+                name: file.name,
+                url: URL.createObjectURL(blob)
+              });
+            })
+            .catch(error => {
+              console.error("Error loading image", error);
+              return;
+            });
+
           this.$modal.msgSuccess(response.msg);
-          this.fileListto.push({
+
+          console.log(this.fileListto, "鏂板鍚�");
+          if (!this.rbDetails[this.atpresent].annexfilesList) {
+            this.rbDetails[this.atpresent].annexfilesList = [];
+          }
+          this.rbDetails[this.atpresent].annexfilesList.push({
             name: file.name,
             url: response.fileName
           });
-          this.pdfimgsrcList.push(
-            this.Networkheader + "/prod-api" + response.fileName
-          );
           this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
-          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
-          this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
         } else {
           console.log(response.msg);
         }
       } else {
         if (response.code == 200) {
           this.previewpdf = true;
+          fetch(pdfimg, config)
+            .then(response => response.blob())
+            .then(blob => {
+              // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+              this.invoicepdfimg = URL.createObjectURL(blob);
+              this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
+              this.invoicefileListto.push({
+                name: file.name,
+                url: URL.createObjectURL(blob)
+              });
+            })
+            .catch(error => {
+              console.error("Error loading image", error);
+              return;
+            });
+
           this.$modal.msgSuccess(response.msg);
-          this.invoicefileListto.push({
+
+          console.log(this.invoicefileListto, "鏂板鍚�");
+          if (!this.rbDetails[this.atpresent].invoicefilesList) {
+            this.rbDetails[this.atpresent].invoicefilesList = [];
+          }
+          this.rbDetails[this.atpresent].invoicefilesList.push({
             name: file.name,
             url: response.fileName
           });
-          this.invoicepdfimgsrcList.push(
-            this.Networkheader + "/prod-api" + response.fileName
-          );
           this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
-          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
-          this.rbDetails[
-            this.atpresent
-          ].invoicefilesList = this.invoicefileListto;
-        } else {
         }
       }
     },
 
     // 鐐瑰嚮绁ㄦ嵁
     Filepopup(index, rows, row) {
+      const config = {
+        headers: { Authorization: "Bearer " + this.ICDtoken }
+      };
+
       this.tableDatatop = [];
+      this.fileListto = [];
+      this.invoicepdfimg = [];
       this.pdfimgsrcList = [];
       this.invoDatatop = [];
       this.invoicepdfimgsrcList = [];
@@ -3183,29 +3242,57 @@
       this.tableDatatop.push(row);
       this.atpresent = index;
       this.pdfVisible = true;
+
       if (this.rbDetails[index].annexfilesList) {
-        this.previewpdf = true;
-        this.fileListto = this.rbDetails[index].annexfilesList;
-        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
-        this.fileListto.forEach(item => {
-          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
+        this.rbDetails[index].annexfilesList.forEach((value, indexson) => {
+          const pdfimg = this.Networkheader + "/prod-api" + value.url;
+          fetch(pdfimg, config)
+            .then(response => response.blob())
+            .then(blob => {
+              // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+              this.fileListto.push({
+                name: value.name,
+                url: URL.createObjectURL(blob)
+              });
+              if (this.fileListto.length == 1) {
+                this.pdfimg = URL.createObjectURL(blob);
+              }
+              this.pdfimgsrcList.push(URL.createObjectURL(blob));
+            })
+            .catch(error => {
+              console.error("Error loading image", error);
+              return;
+            });
         });
+        this.previewpdf = true;
       } else {
         this.fileListto = [];
         this.pdfimg = "";
         this.pdftitle = "";
       }
-      // -鍙戠エ鏂囦欢
+      //鍙戠エ
       if (this.rbDetails[index].invoicefilesList) {
-        this.previewpdf = true;
-        this.invoicefileListto = this.rbDetails[index].invoicefilesList;
-        this.invoicepdfimg =
-          this.Networkheader + "/prod-api" + this.invoicefileListto[0].url;
-        this.invoicefileListto.forEach(item => {
-          this.invoicepdfimgsrcList.push(
-            this.Networkheader + "/prod-api" + item.url
-          );
+        this.rbDetails[index].invoicefilesList.forEach((value, indexson) => {
+          const pdfimg = this.Networkheader + "/prod-api" + value.url;
+          fetch(pdfimg, config)
+            .then(response => response.blob())
+            .then(blob => {
+              // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+              this.invoicefileListto.push({
+                name: value.name,
+                url: URL.createObjectURL(blob)
+              });
+              if (this.invoicefileListto.length == 1) {
+                this.invoicepdfimg = URL.createObjectURL(blob);
+              }
+              this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
+            })
+            .catch(error => {
+              console.error("Error loading image", error);
+              return;
+            });
         });
+        this.previewpdf = true;
       } else {
         this.invoicefileListto = [];
         this.invoicepdfimg = "";
@@ -3230,11 +3317,12 @@
           this.previewpdf = false;
           this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
         } else if (name[1] == "jpg" || "png") {
+          console.log(item, "灞曠ず");
           this.previewpdf = true;
           if (item.url) {
-            this.pdfimg = this.Networkheader + "/prod-api" + item.url;
+            this.pdfimg = item.url;
           } else {
-            this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
+            this.pdfimg = "";
           }
         } else {
           this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -3252,10 +3340,9 @@
         } else if (name[1] == "jpg" || "png") {
           this.previewpdf = true;
           if (item.url) {
-            this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url;
+            this.invoicepdfimg = item.url;
           } else {
-            this.invoicepdfimg =
-              this.Networkheader + "/prod-api" + item.response.url;
+            this.invoicepdfimg = "";
           }
         } else {
           this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -3277,22 +3364,37 @@
     },
     // 鐐瑰嚮鍒犻櫎
     deletedowfile(row) {
+      console.log(row);
+      let indexvalue = "";
       if (this.activeName == 1) {
-        const indexlist = this.getIndexInArray(
-          this.pdfimgsrcList,
-          this.Networkheader + "/prod-api" + row.url
-        );
+        const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url);
         this.pdfimgsrcList.splice(indexlist, 1);
         const index = this.getIndexInArray(this.fileListto, row);
         this.fileListto.splice(index, 1);
+        console.log(this.rbDetails[this.atpresent].annexfilesList);
+        indexvalue = this.rbDetails[this.atpresent].annexfilesList.find(
+          (item, index) => {
+            return item.name == row.name;
+          }
+        );
+        console.log(indexvalue, "鍒犻櫎绱㈠紩");
+        this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1);
       } else {
         const indexlist = this.getIndexInArray(
           this.invoicepdfimgsrcList,
-          this.Networkheader + "/prod-api" + row.url
+          row.url
         );
         this.invoicepdfimgsrcList.splice(indexlist, 1);
         const index = this.getIndexInArray(this.invoicefileListto, row);
         this.invoicefileListto.splice(index, 1);
+        console.log(this.rbDetails[this.atpresent].invoicefilesList);
+        indexvalue = this.rbDetails[this.atpresent].invoicefilesList.find(
+          (item, index) => {
+            return item.name == row.name;
+          }
+        );
+        console.log(indexvalue, "鍒犻櫎绱㈠紩");
+        this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1);
       }
     },
     // 鐐瑰嚮涓婄Щ
@@ -3308,7 +3410,7 @@
       }
     },
     Downloadfile(row) {
-      window.location.href = this.Networkheader + "/prod-api" + row.url;
+      window.location.href = row.url;
     },
 
     //涓撳/鍖荤枟鏈烘瀯/璐圭敤鎶ラ攢鏈烘瀯閫夋嫨

--
Gitblit v1.9.3