download.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import axios from 'axios'
  2. import { Message } from 'element-ui'
  3. import { saveAs } from 'file-saver'
  4. import { getToken } from '@/utils/auth'
  5. import { blobValidate } from "@/utils/ruoyi";
  6. const baseURL = process.env.VUE_APP_BASE_API
  7. export default {
  8. name(name, isDelete = true) {
  9. var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete
  10. axios({
  11. method: 'get',
  12. url: url,
  13. responseType: 'blob',
  14. headers: { 'Authorization': 'Bearer ' + getToken() }
  15. }).then(async (res) => {
  16. const isLogin = await this.blobValidate(res.data);
  17. if (isLogin) {
  18. const blob = new Blob([res.data])
  19. this.saveAs(blob, decodeURI(res.headers['download-filename']))
  20. } else {
  21. Message.error('无效的会话,或者会话已过期,请重新登录。');
  22. }
  23. })
  24. },
  25. resource(resource) {
  26. var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource);
  27. axios({
  28. method: 'get',
  29. url: url,
  30. responseType: 'blob',
  31. headers: { 'Authorization': 'Bearer ' + getToken() }
  32. }).then(async (res) => {
  33. const isLogin = await this.blobValidate(res.data);
  34. if (isLogin) {
  35. const blob = new Blob([res.data])
  36. this.saveAs(blob, decodeURI(res.headers['download-filename']))
  37. } else {
  38. Message.error('无效的会话,或者会话已过期,请重新登录。');
  39. }
  40. })
  41. },
  42. zip(url, name) {
  43. var url = baseURL + url
  44. axios({
  45. method: 'get',
  46. url: url,
  47. responseType: 'blob',
  48. headers: { 'Authorization': 'Bearer ' + getToken() }
  49. }).then(async (res) => {
  50. const isLogin = await blobValidate(res.data);
  51. if (isLogin) {
  52. const blob = new Blob([res.data], { type: 'application/zip' })
  53. this.saveAs(blob, name)
  54. } else {
  55. Message.error('无效的会话,或者会话已过期,请重新登录。');
  56. }
  57. })
  58. },
  59. saveAs(text, name, opts) {
  60. saveAs(text, name, opts);
  61. }
  62. }