作者 RuoYi

优化下载zip方法新增遮罩层

1 import axios from 'axios' 1 import axios from 'axios'
2 -import { Message } from 'element-ui' 2 +import {Loading, Message} from 'element-ui'
3 import { saveAs } from 'file-saver' 3 import { saveAs } from 'file-saver'
4 import { getToken } from '@/utils/auth' 4 import { getToken } from '@/utils/auth'
5 import errorCode from '@/utils/errorCode' 5 import errorCode from '@/utils/errorCode'
6 import { blobValidate } from "@/utils/ruoyi"; 6 import { blobValidate } from "@/utils/ruoyi";
7 7
8 const baseURL = process.env.VUE_APP_BASE_API 8 const baseURL = process.env.VUE_APP_BASE_API
  9 +let downloadLoadingInstance;
9 10
10 export default { 11 export default {
11 name(name, isDelete = true) { 12 name(name, isDelete = true) {
@@ -44,6 +45,7 @@ export default { @@ -44,6 +45,7 @@ export default {
44 }, 45 },
45 zip(url, name) { 46 zip(url, name) {
46 var url = baseURL + url 47 var url = baseURL + url
  48 + downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
47 axios({ 49 axios({
48 method: 'get', 50 method: 'get',
49 url: url, 51 url: url,
@@ -57,6 +59,11 @@ export default { @@ -57,6 +59,11 @@ export default {
57 } else { 59 } else {
58 this.printErrMsg(res.data); 60 this.printErrMsg(res.data);
59 } 61 }
  62 + downloadLoadingInstance.close();
  63 + }).catch((r) => {
  64 + console.error(r)
  65 + Message.error('下载文件出现错误,请联系管理员!')
  66 + downloadLoadingInstance.close();
60 }) 67 })
61 }, 68 },
62 saveAs(text, name, opts) { 69 saveAs(text, name, opts) {