From 99dcbe0207eed69ed2613f3cd9a11d0529bd7265 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 27 九月 2021 17:24:37 +0800
Subject: [PATCH] update 封装通用下载方法简化下载使用
---
ruoyi-ui/src/views/system/dict/data.vue | 2
ruoyi-ui/src/views/monitor/job/log.vue | 2
ruoyi-ui/src/views/tool/gen/index.vue | 1
ruoyi-ui/src/views/demo/demo/index.vue | 2
ruoyi-ui/src/views/system/role/index.vue | 2
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 2
ruoyi-ui/src/views/system/user/index.vue | 4
ruoyi-ui/src/views/monitor/job/index.vue | 2
ruoyi-ui/src/views/monitor/operlog/index.vue | 2
ruoyi-ui/src/views/system/oss/index.vue | 3
ruoyi-ui/src/views/system/config/index.vue | 2
/dev/null | 91 ------------------------------
ruoyi-ui/src/views/system/dict/index.vue | 2
ruoyi-ui/src/main.js | 2
ruoyi-ui/src/plugins/download.js | 37 ++++++++++--
ruoyi-ui/src/views/monitor/logininfor/index.vue | 2
ruoyi-ui/src/views/system/post/index.vue | 2
17 files changed, 44 insertions(+), 116 deletions(-)
diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
index 99e05c1..05a8baf 100644
--- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
+++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -573,7 +573,7 @@
#end
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/${moduleName}/${businessName}/export', this.queryParams);
+ this.#[[$download]]#.excel('/${moduleName}/${businessName}/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js
index 6024266..c6306a6 100644
--- a/ruoyi-ui/src/main.js
+++ b/ruoyi-ui/src/main.js
@@ -17,7 +17,6 @@
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
-import { downLoadExcel } from "@/utils/download";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 鍒嗛〉缁勪欢
import Pagination from "@/components/Pagination";
@@ -44,7 +43,6 @@
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
-Vue.prototype.downLoadExcel = downLoadExcel
Vue.prototype.handleTree = handleTree
// 鍏ㄥ眬缁勪欢鎸傝浇
diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
index cb10ab0..248ed01 100644
--- a/ruoyi-ui/src/plugins/download.js
+++ b/ruoyi-ui/src/plugins/download.js
@@ -5,28 +5,51 @@
const baseURL = process.env.VUE_APP_BASE_API
export default {
- name(name, isDelete = true) {
- var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete
+ 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])
+ const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
this.saveAs(blob, decodeURI(res.headers['download-filename']))
})
},
- resource(resource) {
- var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource);
+ oss(ossId, name) {
+ var url = baseURL + '/system/oss/download/' + ossId
axios({
method: 'get',
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(res => {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ const blob = new Blob([res.data], { type: 'application/octet-stream' })
+ this.saveAs(blob, name)
})
},
zip(url, name) {
diff --git a/ruoyi-ui/src/utils/download.js b/ruoyi-ui/src/utils/download.js
deleted file mode 100644
index 52b07f7..0000000
--- a/ruoyi-ui/src/utils/download.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import axios from 'axios'
-import { getToken } from '@/utils/auth'
-
-const mimeMap = {
- xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- zip: 'application/zip',
- oss: 'application/octet-stream'
-}
-
-const baseUrl = process.env.VUE_APP_BASE_API
-export function downLoadZip(str, filename) {
- var url = baseUrl + str
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(res => {
- 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)) {
- 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 => {
- resolveBlob(res, mimeMap.xlsx)
- })
-}
-
-/**
- * 瑙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/views/demo/demo/index.vue b/ruoyi-ui/src/views/demo/demo/index.vue
index 6f952ec..678ae21 100644
--- a/ruoyi-ui/src/views/demo/demo/index.vue
+++ b/ruoyi-ui/src/views/demo/demo/index.vue
@@ -358,7 +358,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/demo/demo/export', this.queryParams);
+ this.$download.excel('/demo/demo/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue
index 33d416e..a97477b 100644
--- a/ruoyi-ui/src/views/monitor/job/index.vue
+++ b/ruoyi-ui/src/views/monitor/job/index.vue
@@ -510,7 +510,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/monitor/job/export', this.queryParams);
+ this.$download.excel('/monitor/job/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/monitor/job/log.vue b/ruoyi-ui/src/views/monitor/job/log.vue
index 7f2e72e..fca1af4 100644
--- a/ruoyi-ui/src/views/monitor/job/log.vue
+++ b/ruoyi-ui/src/views/monitor/job/log.vue
@@ -293,7 +293,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/monitor/jobLog/export', this.queryParams);
+ this.$download.excel('/monitor/jobLog/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue
index 2b83181..5b11301 100644
--- a/ruoyi-ui/src/views/monitor/logininfor/index.vue
+++ b/ruoyi-ui/src/views/monitor/logininfor/index.vue
@@ -216,7 +216,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/monitor/logininfor/export', this.queryParams);
+ this.$download.excel('/monitor/logininfor/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue
index fafaf60..35fd2b8 100644
--- a/ruoyi-ui/src/views/monitor/operlog/index.vue
+++ b/ruoyi-ui/src/views/monitor/operlog/index.vue
@@ -303,7 +303,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/monitor/operlog/export', this.queryParams);
+ this.$download.excel('/monitor/operlog/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue
index c4029c3..b037917 100644
--- a/ruoyi-ui/src/views/system/config/index.vue
+++ b/ruoyi-ui/src/views/system/config/index.vue
@@ -334,7 +334,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/config/export', this.queryParams);
+ this.$download.excel('/system/config/export', this.queryParams);
},
/** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */
handleRefreshCache() {
diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue
index 3f0b5e0..c7a9006 100644
--- a/ruoyi-ui/src/views/system/dict/data.vue
+++ b/ruoyi-ui/src/views/system/dict/data.vue
@@ -380,7 +380,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/dict/data/export', this.queryParams);
+ this.$download.excel('/system/dict/data/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue
index c1c6649..6daa867 100644
--- a/ruoyi-ui/src/views/system/dict/index.vue
+++ b/ruoyi-ui/src/views/system/dict/index.vue
@@ -338,7 +338,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/dict/type/export', this.queryParams);
+ this.$download.excel('/system/dict/type/export', this.queryParams);
},
/** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */
handleRefreshCache() {
diff --git a/ruoyi-ui/src/views/system/oss/index.vue b/ruoyi-ui/src/views/system/oss/index.vue
index 5b67191..fdfed16 100644
--- a/ruoyi-ui/src/views/system/oss/index.vue
+++ b/ruoyi-ui/src/views/system/oss/index.vue
@@ -188,7 +188,6 @@
<script>
import { listOss, delOss, changePreviewListResource } from "@/api/system/oss";
-import { downLoadOss } from "@/utils/download";
export default {
name: "Oss",
@@ -325,7 +324,7 @@
},
/** 涓嬭浇鎸夐挳鎿嶄綔 */
handleDownload(row) {
- downLoadOss(row.ossId)
+ this.$download.oss(row.ossId)
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue
index 66fa209..8f823f3 100644
--- a/ruoyi-ui/src/views/system/post/index.vue
+++ b/ruoyi-ui/src/views/system/post/index.vue
@@ -305,7 +305,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/post/export', this.queryParams);
+ this.$download.excel('/system/post/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue
index 2ad1cdb..4fcc398 100644
--- a/ruoyi-ui/src/views/system/role/index.vue
+++ b/ruoyi-ui/src/views/system/role/index.vue
@@ -613,7 +613,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/role/export', this.queryParams);
+ this.$download.excel('/system/role/export', this.queryParams);
}
}
};
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
index aaa202d..4faa250 100644
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ b/ruoyi-ui/src/views/system/user/index.vue
@@ -643,7 +643,7 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.downLoadExcel('/system/user/export', this.queryParams);
+ this.$download.excel('/system/user/export', this.queryParams);
},
/** 瀵煎叆鎸夐挳鎿嶄綔 */
handleImport() {
@@ -652,7 +652,7 @@
},
/** 涓嬭浇妯℃澘鎿嶄綔 */
importTemplate() {
- this.downLoadExcel('/system/user/importTemplate');
+ this.$download.excel('/system/user/importTemplate');
},
// 鏂囦欢涓婁紶涓鐞�
handleFileUploadProgress(event, file, fileList) {
diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue
index 5590a04..646decf 100644
--- a/ruoyi-ui/src/views/tool/gen/index.vue
+++ b/ruoyi-ui/src/views/tool/gen/index.vue
@@ -180,7 +180,6 @@
<script>
import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
import importTable from "./importTable";
-import { downLoadZip } from "@/utils/download";
import hljs from "highlight.js/lib/highlight";
import "highlight.js/styles/github-gist.css";
hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
--
Gitblit v1.9.3