From f32813951f368b2fd5b97bc9bb25689c53ccf3bb Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 29 四月 2022 11:35:51 +0800
Subject: [PATCH] update 优化 redis 序列化 使用系统自带json工具 全局统一
---
ruoyi-ui/src/plugins/download.js | 81 ++++++++++++----------------------------
1 files changed, 25 insertions(+), 56 deletions(-)
diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
index ec7bdd4..85138bb 100644
--- a/ruoyi-ui/src/plugins/download.js
+++ b/ruoyi-ui/src/plugins/download.js
@@ -1,66 +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 { Message } from 'element-ui'
+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(async (res) => {
- const isLogin = await this.blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
- } else {
- Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
- }
- })
- },
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(async (res) => {
- const isLogin = await this.blobValidate(res.data);
+ 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 {
- Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
+ this.printErrMsg(res.data);
}
+ downloadLoadingInstance.close();
+ }).catch((r) => {
+ console.error(r)
+ Message.error('涓嬭浇鏂囦欢鍑虹幇閿欒锛岃鑱旂郴绠$悊鍛橈紒')
+ downloadLoadingInstance.close();
})
},
zip(url, name) {
@@ -69,28 +38,28 @@
method: 'get',
url: url,
responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
+ headers: {
+ 'Authorization': 'Bearer ' + getToken(),
+ 'datasource': localStorage.getItem("dataName")
+ }
}).then(async (res) => {
- const isLogin = await this.blobValidate(res.data);
+ const isLogin = await blobValidate(res.data);
if (isLogin) {
const blob = new Blob([res.data], { type: 'application/zip' })
this.saveAs(blob, name)
} else {
- Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
+ this.printErrMsg(res.data);
}
})
},
saveAs(text, name, opts) {
saveAs(text, name, opts);
},
- async blobValidate(data) {
- try {
- const text = await data.text();
- JSON.parse(text);
- return false;
- } catch (error) {
- return true;
- }
- },
+ 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