From 5ca038d888922e93bf45c7bd37f3c6dce849dcff Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 24 十二月 2021 11:36:02 +0800
Subject: [PATCH] update 调整监控依赖 从 common 迁移到 framework

---
 ruoyi-ui/src/plugins/download.js |   75 ++++++++++++++++---------------------
 1 files changed, 33 insertions(+), 42 deletions(-)

diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
index 50f664a..726ef54 100644
--- a/ruoyi-ui/src/plugins/download.js
+++ b/ruoyi-ui/src/plugins/download.js
@@ -1,55 +1,35 @@
-import { saveAs } from 'file-saver'
 import axios from 'axios'
+import {Loading, Message} from 'element-ui'
+import { saveAs } from 'file-saver'
 import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+import { blobValidate } from "@/utils/ruoyi";
 
 const baseURL = process.env.VUE_APP_BASE_API
+let downloadLoadingInstance;
 
 export default {
-  excel(url, params) {
-    // get璇锋眰鏄犲皠params鍙傛暟
-    if (params) {
-      let urlparams = url + '?';
-      for (const propName of Object.keys(params)) {
-        const value = params[propName];
-        var part = encodeURIComponent(propName) + "=";
-        if (value !== null && typeof(value) !== "undefined") {
-          if (typeof value === 'object') {
-            for (const key of Object.keys(value)) {
-              if (value[key] !== null && typeof (value[key]) !== 'undefined') {
-                let params = propName + '[' + key + ']';
-                let subPart = encodeURIComponent(params) + '=';
-                urlparams += subPart + encodeURIComponent(value[key]) + '&';
-              }
-            }
-          } else {
-            urlparams += part + encodeURIComponent(value) + "&";
-          }
-        }
-      }
-      urlparams = urlparams.slice(0, -1);
-      url = urlparams;
-    }
-    url = baseURL + url
-    axios({
-      method: 'get',
-      url: url,
-      responseType: 'blob',
-      headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(res => {
-      const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
-      this.saveAs(blob, decodeURI(res.headers['download-filename']))
-    })
-  },
   oss(ossId) {
     var url = baseURL + '/system/oss/download/' + ossId
+    downloadLoadingInstance = Loading.service({ text: "姝e湪涓嬭浇鏁版嵁锛岃绋嶅��", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
     axios({
       method: 'get',
       url: url,
       responseType: 'blob',
       headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(res => {
-      const blob = new Blob([res.data], { type: 'application/octet-stream' })
-      this.saveAs(blob, decodeURI(res.headers['download-filename']))
+    }).then(async (res) => {
+      const isLogin = await blobValidate(res.data);
+      if (isLogin) {
+        const blob = new Blob([res.data], { type: 'application/octet-stream' })
+        this.saveAs(blob, decodeURI(res.headers['download-filename']))
+      } else {
+        this.printErrMsg(res.data);
+      }
+      downloadLoadingInstance.close();
+    }).catch((r) => {
+      console.error(r)
+      Message.error('涓嬭浇鏂囦欢鍑虹幇閿欒锛岃鑱旂郴绠$悊鍛橈紒')
+      downloadLoadingInstance.close();
     })
   },
   zip(url, name) {
@@ -59,13 +39,24 @@
       url: url,
       responseType: 'blob',
       headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(res => {
-      const blob = new Blob([res.data], { type: 'application/zip' })
-      this.saveAs(blob, name)
+    }).then(async (res) => {
+      const isLogin = await blobValidate(res.data);
+      if (isLogin) {
+        const blob = new Blob([res.data], { type: 'application/zip' })
+        this.saveAs(blob, name)
+      } else {
+        this.printErrMsg(res.data);
+      }
     })
   },
   saveAs(text, name, opts) {
     saveAs(text, name, opts);
+  },
+  async printErrMsg(data) {
+    const resText = await data.text();
+    const rspObj = JSON.parse(resText);
+    const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+    Message.error(errMsg);
   }
 }
 

--
Gitblit v1.9.3