From d3be4d813f6745f245d36a07ea705b4db169d273 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 06 十二月 2023 17:21:28 +0800
Subject: [PATCH] 后端返回数据流格式,前端无法捕获到错误信息

---
 Source/UBCS-WEB/src/components/Master/MasterTransfer.vue    |   52 ++++++++++-------
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |   32 ++++++----
 Source/UBCS-WEB/src/util/func.js                            |   44 +++++++-------
 3 files changed, 72 insertions(+), 56 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
index 5ffff04..6c7c8d5 100644
--- a/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
+++ b/Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
@@ -120,6 +120,22 @@
   mounted() {
   },
   methods: {
+    handlerFile(res){
+      let reader = new FileReader();
+      reader.readAsText(res.data);
+      reader.onload =  (result) =>{
+        try {
+          let resData = JSON.parse(result.target.result);  // 瑙f瀽瀵硅薄鎴愬姛
+          if (resData.code != 200) {
+            this.$message.error(resData.msg);
+          }
+        } catch (err) {
+          // console.log("err",err)// 瑙f瀽鎴愬璞″け璐ワ紝璇存槑鏄甯哥殑鏂囦欢娴�
+          func.downloadFileByBlobHandler(res);
+          this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
+        }
+      };
+    },
     escHandler() {
       this.$emit('update:visible', false);
       this.value = [];
@@ -157,10 +173,8 @@
               'conditionMap[oid]': this.ids, ...this.exportArrTwo,
               limit: -1
             }).then(res => {
-              if (res) {
-                func.downloadFileByBlobHandler(res);
-                this.escHandler()
-              }
+                this.handlerFile(res);
+                this.escHandler();
             })
           } else {
 
@@ -169,10 +183,9 @@
               'conditionMap[oid]': this.ids, ...this.exportArr
             }).then(res => {
               // console.log('res',res)
-              if (res) {
-                func.downloadFileByBlobHandler(res);
-                this.escHandler()
-              }
+                this.handlerFile(res);
+                this.escHandler();
+
             })
 
           }
@@ -186,15 +199,13 @@
           exportCode({codeClassifyOid: this.codeClassifyOid, ...this.exportArrTwo, limit: -1}).then(res => {
             if (res) {
               func.downloadFileByBlobHandler(res);
-              this.escHandler()
+              this.escHandler();
             }
           })
         } else {
           exportCode({codeClassifyOid: this.codeClassifyOid, ...this.exportArr, limit: -1}).then(res => {
-            if (res) {
-              func.downloadFileByBlobHandler(res);
-              this.escHandler()
-            }
+              this.handlerFile(res);
+              this.escHandler();
           })
         }
       } else if (this.radio === 2) {
@@ -230,10 +241,9 @@
             endPage: end
           }).then((res) => {
             // console.log('res',res)
-            if (res) {
-              func.downloadFileByBlobHandler(res);
-              this.escHandler()
-            }
+              this.handlerFile(res);
+              this.escHandler();
+
           });
         } else {
           this.tableHeadData.map(item => item.prop)
@@ -246,11 +256,9 @@
             page: start,
             endPage: end
           }).then(res => {
-            // console.log('res',res)
-            if (res) {
-              func.downloadFileByBlobHandler(res);
-              this.escHandler()
-            }
+            console.log('res',res)
+              this.handlerFile(res);
+              this.escHandler();
           })
         }
       }
diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index b164fb7..80377c8 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -578,19 +578,25 @@
       exportGroupCodeExcel({
         codeClassifyOid: this.codeClassifyOid,
       }).then(res => {
-        console.log(res)
-        if (res) {
-          func.downloadFileByBlobHandler(res);
-          this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
-          this.isLoading = false;
-        }
-      }).catch(error => {
-        console.log(error)
-        if (error) {
-          this.$message.error('璇锋煡鐪嬩笅杞界殑閿欒鏂囦欢锛�');
-        }
-        this.isLoading = false;
-      })
+        let reader = new FileReader();
+        reader.readAsText(res.data)
+        reader.onload =  (result) =>{
+          try {
+            let resData = JSON.parse(result.target.result);  // 瑙f瀽瀵硅薄鎴愬姛
+            if (!resData.success) {
+              console.log("resData",resData)
+              this.$message.error(resData.msg);
+              this.isLoading = false;
+            }
+          } catch (err) {
+            // console.log("err",err)// 瑙f瀽鎴愬璞″け璐ワ紝璇存槑鏄甯哥殑鏂囦欢娴�
+            func.downloadFileByBlobHandler(res);
+            this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
+            this.isLoading = false;
+          }
+        };
+
+      });
     },
     //鏍囧噯鐢宠
     codeApplyHandler() {
diff --git a/Source/UBCS-WEB/src/util/func.js b/Source/UBCS-WEB/src/util/func.js
index 78bd256..9d6d017 100644
--- a/Source/UBCS-WEB/src/util/func.js
+++ b/Source/UBCS-WEB/src/util/func.js
@@ -75,8 +75,8 @@
 
   /**
    * ts鏃ユ湡鏍煎紡澶勭悊
-   * @param {瑕佸鐞嗙殑鏃ユ湡} thisDate 
-   * @returns 
+   * @param {瑕佸鐞嗙殑鏃ユ湡} thisDate
+   * @returns
    */
   static formattedDateTime(thisDate) {
     const date = new Date(thisDate);
@@ -133,20 +133,22 @@
    * @returns {Boolean}
    */
   static downloadFileByBlobHandler(res) {
-    const fileNames = res.headers['content-disposition'].split(";");
-    let characterSet = fileNames[2].split("filename*=")[1];
-    let fileName = decodeURI(fileNames[1].split("filename=")[1],characterSet);  // 涓嬭浇鐨勬枃浠跺悕
-    let blob = new Blob([res.data], {
-      type: res.data.type + ";charset=utf-8",
-    });
-    const url = URL.createObjectURL(blob); // 鐢熸垚涓嬭浇閾炬帴
-    const link = document.createElement("a");
-    link.href = url;
-    link.download = fileName; // 鎸囧畾鏂囦欢鍚嶅拰鏍煎紡
-    document.body.appendChild(link); // 娣诲姞涓嬭浇閾炬帴鍒伴〉闈�
-    link.click(); // 瑙﹀彂涓嬭浇
-    document.body.removeChild(link); //鍒犻櫎涓嬭浇
-    window.URL.revokeObjectURL(url); //閲婃斁鎺塨lob瀵硅薄
+    if(res.headers['content-disposition']){
+      const fileNames = res.headers['content-disposition'].split(";");
+      let characterSet = fileNames[2].split("filename*=")[1];
+      let fileName = decodeURI(fileNames[1].split("filename=")[1],characterSet);  // 涓嬭浇鐨勬枃浠跺悕
+      let blob = new Blob([res.data], {
+        type: res.data.type + ";charset=utf-8",
+      });
+      const url = URL.createObjectURL(blob); // 鐢熸垚涓嬭浇閾炬帴
+      const link = document.createElement("a");
+      link.href = url;
+      link.download = fileName; // 鎸囧畾鏂囦欢鍚嶅拰鏍煎紡
+      document.body.appendChild(link); // 娣诲姞涓嬭浇閾炬帴鍒伴〉闈�
+      link.click(); // 瑙﹀彂涓嬭浇
+      document.body.removeChild(link); //鍒犻櫎涓嬭浇
+      window.URL.revokeObjectURL(url); //閲婃斁鎺塨lob瀵硅薄
+    }
   }
 
   /**
@@ -166,9 +168,9 @@
 
   /**
    * 灏嗘暟缁勪腑鐨勫睘鎬ф嫾鎺ユ垚瀛楃涓�
-   * @param {鏁扮粍} array 
-   * @param {灞炴� attr 
-   * @returns 
+   * @param {鏁扮粍} array
+   * @param {灞炴� attr
+   * @returns
    */
   static joinedString(array,attr) {
     return array.reduce((accumulator, item) => {
@@ -178,8 +180,8 @@
 
   /**
    * 姣斿鏁扮粍涓殑瀵硅薄鐨勬煇涓睘鎬ф槸鍚﹀叏閮ㄤ竴鑷�
-   * @param {鏁扮粍} array 
-   * @param {灞炴� attr 
+   * @param {鏁扮粍} array
+   * @param {灞炴� attr
    * @returns 涓�鑷磋繑鍥瀎asle,涓嶄竴鑷磋繑鍥瀟rue
    */
   static isAttrInconsistent(array,attr) {

--
Gitblit v1.9.3