From 89cca8af078ad110dbe20a81b2850de98b6f78d0 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 03 八月 2021 19:29:15 +0800
Subject: [PATCH] update 重构 统一使用 zip 工具下载
---
/dev/null | 41 --------------------
ruoyi-ui/src/utils/zipdownload.js | 54 ++++++++++++++++++++++++++-
2 files changed, 52 insertions(+), 43 deletions(-)
diff --git a/ruoyi-ui/src/utils/ossdownload.js b/ruoyi-ui/src/utils/ossdownload.js
deleted file mode 100644
index 6da52bb..0000000
--- a/ruoyi-ui/src/utils/ossdownload.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import axios from 'axios'
-import { getToken } from '@/utils/auth'
-
-const mimeMap = {
- oss: 'application/octet-stream'
-}
-
-const baseUrl = process.env.VUE_APP_BASE_API
-export function downLoadOss(ossId) {
- var url = baseUrl + '/system/oss/download/' + ossId
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(res => {
- resolveBlob(res, mimeMap.oss)
- })
-}
-/**
- * 瑙f瀽blob鍝嶅簲鍐呭骞朵笅杞�
- * @param {*} res blob鍝嶅簲鍐呭
- * @param {String} mimeType MIME绫诲瀷
- */
-export function resolveBlob(res, mimeType) {
- const aLink = document.createElement('a')
- var blob = new Blob([res.data], { type: mimeType })
- // 浠巖esponse鐨刪eaders涓幏鍙杅ilename, 鍚庣response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 璁剧疆鐨勬枃浠跺悕;
- var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
- var contentDisposition = decodeURI(res.headers['content-disposition'])
- var result = patt.exec(contentDisposition)
- var fileName = result[1]
- fileName = fileName.replace(/\"/g, '')
- aLink.style.display = 'none'
- aLink.href = URL.createObjectURL(blob)
- aLink.setAttribute('download', decodeURI(fileName)) // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
- document.body.appendChild(aLink)
- aLink.click()
- URL.revokeObjectURL(aLink.href);//娓呴櫎寮曠敤
- document.body.removeChild(aLink);
-}
diff --git a/ruoyi-ui/src/utils/zipdownload.js b/ruoyi-ui/src/utils/zipdownload.js
index 52afcc6..aa92603 100644
--- a/ruoyi-ui/src/utils/zipdownload.js
+++ b/ruoyi-ui/src/utils/zipdownload.js
@@ -3,7 +3,9 @@
const mimeMap = {
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- zip: 'application/zip'
+ zip: 'application/zip',
+ excel: 'application/vnd.ms-excel',
+ oss: 'application/octet-stream'
}
const baseUrl = process.env.VUE_APP_BASE_API
@@ -18,6 +20,54 @@
resolveBlob(res, mimeMap.zip)
})
}
+
+export function downLoadOss(ossId) {
+ var url = baseUrl + '/system/oss/download/' + ossId
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'Authorization': 'Bearer ' + getToken() }
+ }).then(res => {
+ resolveBlob(res, mimeMap.oss)
+ })
+}
+
+export function downLoadExcel(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)) {
+ let params = propName + '[' + key + ']';
+ var subPart = encodeURIComponent(params) + "=";
+ urlparams += subPart + encodeURIComponent(value[key]) + "&";
+ }
+ } else {
+ urlparams += part + encodeURIComponent(value) + "&";
+ }
+ }
+ }
+ urlparams = urlparams.slice(0, -1);
+ params = {};
+ url = urlparams;
+ }
+ url = baseUrl + url
+ axios({
+ method: 'get',
+ url: url,
+ params: params,
+ responseType: 'blob',
+ headers: { 'Authorization': 'Bearer ' + getToken() }
+ }).then(res => {
+ resolveBlob(res, mimeMap.excel)
+ })
+}
+
/**
* 瑙f瀽blob鍝嶅簲鍐呭骞朵笅杞�
* @param {*} res blob鍝嶅簲鍐呭
@@ -34,7 +84,7 @@
fileName = fileName.replace(/\"/g, '')
aLink.style.display = 'none'
aLink.href = URL.createObjectURL(blob)
- aLink.setAttribute('download', fileName) // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
+ aLink.setAttribute('download', decodeURI(fileName)) // 璁剧疆涓嬭浇鏂囦欢鍚嶇О
document.body.appendChild(aLink)
aLink.click()
URL.revokeObjectURL(aLink.href);//娓呴櫎寮曠敤
--
Gitblit v1.9.3