Commit 02a0ab6d6d3c833c125419b95699a86df347e3d7

Authored by YunaiV
1 parent fee6d00e

v3.8.0 新增通用方法简化下载使用

yudao-module-tool/yudao-module-tool-impl/src/main/resources/codegen/vue/views/index.vue.vm
@@ -390,7 +390,7 @@ export default { @@ -390,7 +390,7 @@ export default {
390 this.exportLoading = true; 390 this.exportLoading = true;
391 return export${simpleClassName}Excel(params); 391 return export${simpleClassName}Excel(params);
392 }).then(response => { 392 }).then(response => {
393 - this.downloadExcel(response, '${table.classComment}.xls'); 393 + this.$download.excel(response, '${table.classComment}.xls');
394 this.exportLoading = false; 394 this.exportLoading = false;
395 }).catch(() => {}); 395 }).catch(() => {});
396 } 396 }
yudao-ui-admin/src/main.js
@@ -17,19 +17,7 @@ import './assets/icons' // icon @@ -17,19 +17,7 @@ import './assets/icons' // icon
17 import './permission' // permission control 17 import './permission' // permission control
18 import { getDicts } from "@/api/system/dict/data"; 18 import { getDicts } from "@/api/system/dict/data";
19 import { getConfigKey } from "@/api/infra/config"; 19 import { getConfigKey } from "@/api/infra/config";
20 -import {  
21 - parseTime,  
22 - resetForm,  
23 - addDateRange,  
24 - addBeginAndEndTime,  
25 - download,  
26 - handleTree,  
27 - downloadExcel,  
28 - downloadWord,  
29 - downloadZip,  
30 - downloadHtml,  
31 - downloadMarkdown,  
32 -} from "@/utils/ruoyi"; 20 +import { parseTime, resetForm, addDateRange, addBeginAndEndTime, handleTree} from "@/utils/ruoyi";
33 import Pagination from "@/components/Pagination"; 21 import Pagination from "@/components/Pagination";
34 // 自定义表格工具扩展 22 // 自定义表格工具扩展
35 import RightToolbar from "@/components/RightToolbar" 23 import RightToolbar from "@/components/RightToolbar"
@@ -49,12 +37,6 @@ Vue.prototype.getDictDatas = getDictDatas @@ -49,12 +37,6 @@ Vue.prototype.getDictDatas = getDictDatas
49 Vue.prototype.getDictDatas2 = getDictDatas2 37 Vue.prototype.getDictDatas2 = getDictDatas2
50 Vue.prototype.getDictDataLabel = getDictDataLabel 38 Vue.prototype.getDictDataLabel = getDictDataLabel
51 Vue.prototype.DICT_TYPE = DICT_TYPE 39 Vue.prototype.DICT_TYPE = DICT_TYPE
52 -Vue.prototype.download = download  
53 -Vue.prototype.downloadExcel = downloadExcel  
54 -Vue.prototype.downloadWord = downloadWord  
55 -Vue.prototype.downloadHtml = downloadHtml  
56 -Vue.prototype.downloadMarkdown = downloadMarkdown  
57 -Vue.prototype.downloadZip = downloadZip  
58 Vue.prototype.handleTree = handleTree 40 Vue.prototype.handleTree = handleTree
59 41
60 // 全局组件挂载 42 // 全局组件挂载
yudao-ui-admin/src/plugins/download.js 0 → 100644
  1 +import { saveAs } from 'file-saver'
  2 +import axios from 'axios'
  3 +import { getToken } from '@/utils/auth'
  4 +
  5 +const baseURL = process.env.VUE_APP_BASE_API
  6 +
  7 +export default {
  8 + // 下载 Excel 方法
  9 + excel(data, fileName) {
  10 + this.download0(data, fileName, 'application/vnd.ms-excel');
  11 + },
  12 +
  13 + // 下载 Word 方法
  14 + word(data, fileName) {
  15 + this.download0(data, fileName, 'application/msword');
  16 + },
  17 +
  18 + // 下载 Zip 方法
  19 + zip(data, fileName) {
  20 + this.download0(data, fileName, 'application/zip');
  21 + },
  22 +
  23 + // 下载 Html 方法
  24 + html(data, fileName) {
  25 + this.download0(data, fileName, 'text/html');
  26 + },
  27 +
  28 + // 下载 Markdown 方法
  29 + markdown(data, fileName) {
  30 + this.download0(data, fileName, 'text/markdown');
  31 + },
  32 +
  33 + download0(data, fileName, mineType) {
  34 + // 创建 blob
  35 + let blob = new Blob([data], {type: mineType});
  36 + // 创建 href 超链接,点击进行下载
  37 + window.URL = window.URL || window.webkitURL;
  38 + let href = URL.createObjectURL(blob);
  39 + let downA = document.createElement("a");
  40 + downA.href = href;
  41 + downA.download = fileName;
  42 + downA.click();
  43 + // 销毁超连接
  44 + window.URL.revokeObjectURL(href);
  45 + }
  46 +
  47 +}
yudao-ui-admin/src/plugins/index.js
1 import cache from './cache' 1 import cache from './cache'
2 import modal from './modal' 2 import modal from './modal'
  3 +import download from './download'
3 4
4 export default { 5 export default {
5 install(Vue) { 6 install(Vue) {
@@ -7,5 +8,7 @@ export default { @@ -7,5 +8,7 @@ export default {
7 Vue.prototype.$cache = cache 8 Vue.prototype.$cache = cache
8 // 模态框对象 9 // 模态框对象
9 Vue.prototype.$modal = modal 10 Vue.prototype.$modal = modal
  11 + // 下载文件
  12 + Vue.prototype.$download = download
10 } 13 }
11 } 14 }
yudao-ui-admin/src/utils/ruoyi.js
@@ -100,50 +100,6 @@ export function addBeginAndEndTime(params, dateRange, propName) { @@ -100,50 +100,6 @@ export function addBeginAndEndTime(params, dateRange, propName) {
100 return params; 100 return params;
101 } 101 }
102 102
103 -// 通用下载方法  
104 -export function download(fileName) {  
105 - window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;  
106 -}  
107 -  
108 -// 下载 Excel 方法  
109 -export function downloadExcel(data, fileName) {  
110 - download0(data, fileName, 'application/vnd.ms-excel');  
111 -}  
112 -  
113 -// 下载 Word 方法  
114 -export function downloadWord(data, fileName) {  
115 - download0(data, fileName, 'application/msword');  
116 -}  
117 -  
118 -// 下载 Zip 方法  
119 -export function downloadZip(data, fileName) {  
120 - download0(data, fileName, 'application/zip');  
121 -}  
122 -  
123 -// 下载 Html 方法  
124 -export function downloadHtml(data, fileName) {  
125 - download0(data, fileName, 'text/html');  
126 -}  
127 -  
128 -// 下载 Markdown 方法  
129 -export function downloadMarkdown(data, fileName) {  
130 - download0(data, fileName, 'text/markdown');  
131 -}  
132 -  
133 -function download0(data, fileName, mineType) {  
134 - // 创建 blob  
135 - let blob = new Blob([data], {type: mineType});  
136 - // 创建 href 超链接,点击进行下载  
137 - window.URL = window.URL || window.webkitURL;  
138 - let href = URL.createObjectURL(blob);  
139 - let downA = document.createElement("a");  
140 - downA.href = href;  
141 - downA.download = fileName;  
142 - downA.click();  
143 - // 销毁超连接  
144 - window.URL.revokeObjectURL(href);  
145 -}  
146 -  
147 // 字符串格式化(%s ) 103 // 字符串格式化(%s )
148 export function sprintf(str) { 104 export function sprintf(str) {
149 var args = arguments, flag = true, i = 1; 105 var args = arguments, flag = true, i = 1;
yudao-ui-admin/src/views/infra/apiAccessLog/index.vue
@@ -206,7 +206,7 @@ export default { @@ -206,7 +206,7 @@ export default {
206 this.exportLoading = true; 206 this.exportLoading = true;
207 return exportApiAccessLogExcel(params); 207 return exportApiAccessLogExcel(params);
208 }).then(response => { 208 }).then(response => {
209 - this.downloadExcel(response, 'API 访问日志.xls'); 209 + this.$download.excel(response, 'API 访问日志.xls');
210 this.exportLoading = false; 210 this.exportLoading = false;
211 }).catch(() => {}); 211 }).catch(() => {});
212 } 212 }
yudao-ui-admin/src/views/infra/apiErrorLog/index.vue
@@ -224,7 +224,7 @@ export default { @@ -224,7 +224,7 @@ export default {
224 this.exportLoading = true; 224 this.exportLoading = true;
225 return exportApiErrorLogExcel(params); 225 return exportApiErrorLogExcel(params);
226 }).then(response => { 226 }).then(response => {
227 - this.downloadExcel(response, 'API 错误日志.xls'); 227 + this.$download.excel(response, 'API 错误日志.xls');
228 this.exportLoading = false; 228 this.exportLoading = false;
229 }).catch(() => {}); 229 }).catch(() => {});
230 } 230 }
yudao-ui-admin/src/views/infra/config/index.vue
@@ -268,7 +268,7 @@ export default { @@ -268,7 +268,7 @@ export default {
268 this.exportLoading = true; 268 this.exportLoading = true;
269 return exportConfig(queryParams); 269 return exportConfig(queryParams);
270 }).then(response => { 270 }).then(response => {
271 - this.downloadExcel(response, '参数配置.xls'); 271 + this.$download.excel(response, '参数配置.xls');
272 this.exportLoading = false; 272 this.exportLoading = false;
273 }).catch(() => {}); 273 }).catch(() => {});
274 }, 274 },
yudao-ui-admin/src/views/infra/job/index.vue
@@ -367,7 +367,7 @@ export default { @@ -367,7 +367,7 @@ export default {
367 this.exportLoading = true; 367 this.exportLoading = true;
368 return exportJob(queryParams); 368 return exportJob(queryParams);
369 }).then(response => { 369 }).then(response => {
370 - this.downloadExcel(response, '定时任务.xls'); 370 + this.$download.excel(response, '定时任务.xls');
371 this.exportLoading = false; 371 this.exportLoading = false;
372 }).catch(() => {}); 372 }).catch(() => {});
373 } 373 }
yudao-ui-admin/src/views/infra/job/log.vue
@@ -169,7 +169,7 @@ export default { @@ -169,7 +169,7 @@ export default {
169 this.exportLoading = true; 169 this.exportLoading = true;
170 return exportJobLogExcel(params); 170 return exportJobLogExcel(params);
171 }).then(response => { 171 }).then(response => {
172 - this.downloadExcel(response, '定时任务日志.xls'); 172 + this.$download.excel(response, '定时任务日志.xls');
173 this.exportLoading = false; 173 this.exportLoading = false;
174 }).catch(() => {}); 174 }).catch(() => {});
175 } 175 }
yudao-ui-admin/src/views/pay/app/index.vue
@@ -417,7 +417,7 @@ export default { @@ -417,7 +417,7 @@ export default {
417 this.$modal.confirm('是否确认导出所有支付应用信息数据项?').then(function () { 417 this.$modal.confirm('是否确认导出所有支付应用信息数据项?').then(function () {
418 return exportAppExcel(params); 418 return exportAppExcel(params);
419 }).then(response => { 419 }).then(response => {
420 - this.downloadExcel(response, '支付应用信息.xls'); 420 + this.$download.excel(response, '支付应用信息.xls');
421 }).catch(() => {}); 421 }).catch(() => {});
422 }, 422 },
423 /** 423 /**
yudao-ui-admin/src/views/pay/merchant/index.vue
@@ -279,7 +279,7 @@ export default { @@ -279,7 +279,7 @@ export default {
279 this.exportLoading = true; 279 this.exportLoading = true;
280 return exportMerchantExcel(params); 280 return exportMerchantExcel(params);
281 }).then(response => { 281 }).then(response => {
282 - this.downloadExcel(response, '支付商户信息.xls'); 282 + this.$download.excel(response, '支付商户信息.xls');
283 this.exportLoading = false; 283 this.exportLoading = false;
284 }).catch(() => {}); 284 }).catch(() => {});
285 } 285 }
yudao-ui-admin/src/views/pay/order/index.vue
@@ -423,7 +423,7 @@ export default { @@ -423,7 +423,7 @@ export default {
423 this.$modal.confirm('是否确认导出所有支付订单数据项?').then(function () { 423 this.$modal.confirm('是否确认导出所有支付订单数据项?').then(function () {
424 return exportOrderExcel(params); 424 return exportOrderExcel(params);
425 }).then(response => { 425 }).then(response => {
426 - this.downloadExcel(response, '支付订单.xls'); 426 + this.$download.excel(response, '支付订单.xls');
427 }).catch(() => {}); 427 }).catch(() => {});
428 }, 428 },
429 /** 429 /**
yudao-ui-admin/src/views/pay/refund/index.vue
@@ -427,7 +427,7 @@ export default { @@ -427,7 +427,7 @@ export default {
427 this.$modal.confirm('是否确认导出所有退款订单数据项?').then(function () { 427 this.$modal.confirm('是否确认导出所有退款订单数据项?').then(function () {
428 return exportRefundExcel(params); 428 return exportRefundExcel(params);
429 }).then(response => { 429 }).then(response => {
430 - this.downloadExcel(response, '退款订单.xls'); 430 + this.$download.excel(response, '退款订单.xls');
431 }).catch(() => {}); 431 }).catch(() => {});
432 }, 432 },
433 /** 433 /**
yudao-ui-admin/src/views/system/dict/data.vue
@@ -297,7 +297,7 @@ export default { @@ -297,7 +297,7 @@ export default {
297 this.exportLoading = true; 297 this.exportLoading = true;
298 return exportData(queryParams); 298 return exportData(queryParams);
299 }).then(response => { 299 }).then(response => {
300 - this.downloadExcel(response, '字典数据.xls'); 300 + this.$download.excel(response, '字典数据.xls');
301 this.exportLoading = false; 301 this.exportLoading = false;
302 }).catch(() => {}); 302 }).catch(() => {});
303 } 303 }
yudao-ui-admin/src/views/system/dict/index.vue
@@ -250,7 +250,7 @@ export default { @@ -250,7 +250,7 @@ export default {
250 this.exportLoading = true; 250 this.exportLoading = true;
251 return exportType(params); 251 return exportType(params);
252 }).then(response => { 252 }).then(response => {
253 - this.downloadExcel(response, '字典类型.xls'); 253 + this.$download.excel(response, '字典类型.xls');
254 this.exportLoading = false; 254 this.exportLoading = false;
255 }).catch(() => {}); 255 }).catch(() => {});
256 } 256 }
yudao-ui-admin/src/views/system/errorCode/index.vue
@@ -243,7 +243,7 @@ export default { @@ -243,7 +243,7 @@ export default {
243 this.exportLoading = true; 243 this.exportLoading = true;
244 return exportErrorCodeExcel(params); 244 return exportErrorCodeExcel(params);
245 }).then(response => { 245 }).then(response => {
246 - this.downloadExcel(response, '错误码.xls'); 246 + this.$download.excel(response, '错误码.xls');
247 this.exportLoading = false; 247 this.exportLoading = false;
248 }).catch(() => {}); 248 }).catch(() => {});
249 } 249 }
yudao-ui-admin/src/views/system/loginlog/index.vue
@@ -126,7 +126,7 @@ export default { @@ -126,7 +126,7 @@ export default {
126 this.exportLoading = true; 126 this.exportLoading = true;
127 return exportLoginLog(queryParams); 127 return exportLoginLog(queryParams);
128 }).then(response => { 128 }).then(response => {
129 - this.downloadExcel(response, '登录日志.xls'); 129 + this.$download.excel(response, '登录日志.xls');
130 this.exportLoading = false; 130 this.exportLoading = false;
131 }).catch(() => {}); 131 }).catch(() => {});
132 } 132 }
yudao-ui-admin/src/views/system/operatelog/index.vue
@@ -206,7 +206,7 @@ export default { @@ -206,7 +206,7 @@ export default {
206 this.exportLoading = true; 206 this.exportLoading = true;
207 return exportOperateLog(queryParams); 207 return exportOperateLog(queryParams);
208 }).then(response => { 208 }).then(response => {
209 - this.downloadExcel(response, '操作日志.xls'); 209 + this.$download.excel(response, '操作日志.xls');
210 this.exportLoading = false; 210 this.exportLoading = false;
211 }).catch(() => {}); 211 }).catch(() => {});
212 } 212 }
yudao-ui-admin/src/views/system/post/index.vue
@@ -236,7 +236,7 @@ export default { @@ -236,7 +236,7 @@ export default {
236 this.exportLoading = true; 236 this.exportLoading = true;
237 return exportPost(queryParams); 237 return exportPost(queryParams);
238 }).then(response => { 238 }).then(response => {
239 - this.downloadExcel(response, '岗位数据.xls'); 239 + this.$download.excel(response, '岗位数据.xls');
240 this.exportLoading = false; 240 this.exportLoading = false;
241 }).catch(() => {}); 241 }).catch(() => {});
242 } 242 }
yudao-ui-admin/src/views/system/role/index.vue
@@ -497,7 +497,7 @@ export default { @@ -497,7 +497,7 @@ export default {
497 this.exportLoading = true; 497 this.exportLoading = true;
498 return exportRole(queryParams); 498 return exportRole(queryParams);
499 }).then(response => { 499 }).then(response => {
500 - this.downloadExcel(response, '角色数据.xls'); 500 + this.$download.excel(response, '角色数据.xls');
501 this.exportLoading = false; 501 this.exportLoading = false;
502 }).catch(() => {}); 502 }).catch(() => {});
503 } 503 }
yudao-ui-admin/src/views/system/sms/smsLog.vue
@@ -282,7 +282,7 @@ export default { @@ -282,7 +282,7 @@ export default {
282 this.exportLoading = true; 282 this.exportLoading = true;
283 return exportSmsLogExcel(params); 283 return exportSmsLogExcel(params);
284 }).then(response => { 284 }).then(response => {
285 - this.downloadExcel(response, '短信日志.xls'); 285 + this.$download.excel(response, '短信日志.xls');
286 this.exportLoading = false; 286 this.exportLoading = false;
287 }).catch(() => {}); 287 }).catch(() => {});
288 }, 288 },
yudao-ui-admin/src/views/system/sms/smsTemplate.vue
@@ -334,7 +334,7 @@ export default { @@ -334,7 +334,7 @@ export default {
334 this.exportLoading = true; 334 this.exportLoading = true;
335 return exportSmsTemplateExcel(params); 335 return exportSmsTemplateExcel(params);
336 }).then(response => { 336 }).then(response => {
337 - this.downloadExcel(response, '短信模板.xls'); 337 + this.$download.excel(response, '短信模板.xls');
338 this.exportLoading = false; 338 this.exportLoading = false;
339 }).catch(() => {}); 339 }).catch(() => {});
340 }, 340 },
yudao-ui-admin/src/views/system/tenant/index.vue
@@ -246,7 +246,7 @@ export default { @@ -246,7 +246,7 @@ export default {
246 this.exportLoading = true; 246 this.exportLoading = true;
247 return exportTenantExcel(params); 247 return exportTenantExcel(params);
248 }).then(response => { 248 }).then(response => {
249 - this.downloadExcel(response, '租户.xls'); 249 + this.$download.excel(response, '租户.xls');
250 this.exportLoading = false; 250 this.exportLoading = false;
251 }).catch(() => {}); 251 }).catch(() => {});
252 } 252 }
yudao-ui-admin/src/views/system/user/index.vue
@@ -585,7 +585,7 @@ export default { @@ -585,7 +585,7 @@ export default {
585 this.exportLoading = true; 585 this.exportLoading = true;
586 return exportUser(queryParams); 586 return exportUser(queryParams);
587 }).then(response => { 587 }).then(response => {
588 - this.downloadExcel(response, '用户数据.xls'); 588 + this.$download.excel(response, '用户数据.xls');
589 this.exportLoading = false; 589 this.exportLoading = false;
590 }).catch(() => {}); 590 }).catch(() => {});
591 }, 591 },
@@ -597,7 +597,7 @@ export default { @@ -597,7 +597,7 @@ export default {
597 /** 下载模板操作 */ 597 /** 下载模板操作 */
598 importTemplate() { 598 importTemplate() {
599 importTemplate().then(response => { 599 importTemplate().then(response => {
600 - this.downloadExcel(response, '用户导入模板.xls'); 600 + this.$download.excel(response, '用户导入模板.xls');
601 }); 601 });
602 }, 602 },
603 // 文件上传中处理 603 // 文件上传中处理
yudao-ui-admin/src/views/tool/codegen/index.vue
@@ -192,7 +192,7 @@ export default { @@ -192,7 +192,7 @@ export default {
192 /** 生成代码操作 */ 192 /** 生成代码操作 */
193 handleGenTable(row) { 193 handleGenTable(row) {
194 downloadCodegen(row.id).then(response => { 194 downloadCodegen(row.id).then(response => {
195 - this.downloadZip(response, 'codegen-' + row.tableName + '.zip'); 195 + this.$download.zip(response, 'codegen-' + row.tableName + '.zip');
196 }) 196 })
197 }, 197 },
198 /** 同步数据库操作 */ 198 /** 同步数据库操作 */
yudao-ui-admin/src/views/tool/dbDoc/index.vue
@@ -48,19 +48,19 @@ export default { @@ -48,19 +48,19 @@ export default {
48 /** 处理导出 HTML */ 48 /** 处理导出 HTML */
49 handleExportHtml() { 49 handleExportHtml() {
50 exportHtml().then(response => { 50 exportHtml().then(response => {
51 - this.downloadHtml(response, '数据库文档.html'); 51 + this.$download.html(response, '数据库文档.html');
52 }) 52 })
53 }, 53 },
54 /** 处理导出 Word */ 54 /** 处理导出 Word */
55 handleExportWord() { 55 handleExportWord() {
56 exportWord().then(response => { 56 exportWord().then(response => {
57 - this.downloadWord(response, '数据库文档.doc'); 57 + this.$download.word(response, '数据库文档.doc');
58 }) 58 })
59 }, 59 },
60 /** 处理导出 Markdown */ 60 /** 处理导出 Markdown */
61 handleExportMarkdown() { 61 handleExportMarkdown() {
62 exportMarkdown().then(response => { 62 exportMarkdown().then(response => {
63 - this.downloadMarkdown(response, '数据库文档.md'); 63 + this.$download.markdown(response, '数据库文档.md');
64 }) 64 })
65 } 65 }
66 } 66 }
yudao-ui-admin/src/views/tool/testDemo/index.vue
@@ -253,7 +253,7 @@ export default { @@ -253,7 +253,7 @@ export default {
253 this.exportLoading = true; 253 this.exportLoading = true;
254 return exportTestDemoExcel(params); 254 return exportTestDemoExcel(params);
255 }).then(response => { 255 }).then(response => {
256 - this.downloadExcel(response, '字典类型.xls'); 256 + this.$download.excel(response, '字典类型.xls');
257 this.exportLoading = false; 257 this.exportLoading = false;
258 }).catch(() => {}); 258 }).catch(() => {});
259 } 259 }