DownloadService.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var Common = require('./Common.js');
  2. /**
  3. * 报表下载服务
  4. */
  5. export default {
  6. /**
  7. * GET 方式下载文件
  8. * @param {*} url
  9. * @param {*} fileName
  10. */
  11. downloadFile: function (url, fileName) {
  12. var a = document.createElement('a');
  13. a.download = fileName;
  14. a.href = url;
  15. $('body').append(a); // 修复firefox中无法触发click
  16. a.click();
  17. $(a).remove();
  18. },
  19. /**
  20. * 报表下载
  21. * @param {Object} fileName
  22. * @author GuoZhiBo 20200410
  23. */
  24. reportDownload: function (fileName) {
  25. var downloadUrl = Common.getApiURL('file/reportDownload') + '?fileName=' + window.encodeURIComponent(fileName);
  26. this.downloadFile(downloadUrl, fileName);
  27. },
  28. /**
  29. * 文件下载
  30. * @param {Object} className 类名称
  31. * @param {Object} fileName 文件名称
  32. * @author GuoZhiBo 20211008
  33. */
  34. fileDownload:function(className, fileName){
  35. var downloadUrl = Common.getApiURL('file/fileDownload') + '?className=' + className
  36. + '&fileName=' + window.encodeURIComponent(fileName);
  37. this.downloadFile(downloadUrl, fileName);
  38. },
  39. /**
  40. * POST 方式下载文件
  41. * @param {http请求的地址} url
  42. * @param {post请求需要的参数} params
  43. */
  44. postDownloadFile: function (url, params) {
  45. var form = document.createElement('form');
  46. form.style.display = 'none';
  47. form.action = url;
  48. form.method = 'post';
  49. document.body.appendChild(form);
  50. // 动态创建input并给value赋值
  51. for (var key in params) {
  52. var input = document.createElement('input');
  53. input.type = 'hidden';
  54. input.name = key;
  55. input.value = params[key];
  56. form.appendChild(input);
  57. }
  58. form.submit();
  59. form.remove();
  60. },
  61. };