import Common from './Common.js'; import Notify from './Notify.js'; /** * 报表下载服务 */ export default { /** * GET 方式下载文件 * @param {*} url * @param {*} fileName */ downloadFile: function (url, fileName) { var xhr = new XMLHttpRequest(); xhr.open('get', url, true); const token = localStorage.getItem('#token'); xhr.setRequestHeader('token', token); xhr.setRequestHeader('Content-type', 'application/json'); xhr.responseType = 'blob'; xhr.onreadystatechange = function(){ if(xhr.readyState === 4 && xhr.status === 200){ let res = xhr.response; let type = xhr.getResponseHeader('Content-Type'); let blob = new Blob([res], { type: type }); const blobUrl = URL.createObjectURL(blob); const link = document.createElement('a'); link.download = fileName; link.style.display = 'none'; link.href = blobUrl; document.body.appendChild(link); link.click(); URL.revokeObjectURL(blobUrl); document.body.removeChild(link); } }; xhr.send(); }, /** * 报表下载 * @param {Object} fileName * @author GuoZhiBo 20200410 */ reportDownload: function (fileName) { var downloadUrl = Common.getApiURL('file/reportDownload') + '?fileName=' + window.encodeURIComponent(fileName); this.downloadFile(downloadUrl, fileName); }, /** * 文件下载 * @param {Object} className 类名称 * @param {Object} fileName 文件名称 * @author GuoZhiBo 20211008 */ fileDownload:function(className, fileName){ var downloadUrl = Common.getApiURL('file/fileDownload') + '?className=' + className + '&fileName=' + window.encodeURIComponent(fileName); this.downloadFile(downloadUrl, fileName); }, /** * POST 方式下载文件 * @param {http请求的地址} url * @param {post请求需要的参数} params */ postDownloadFile: function (url, params) { var form = document.createElement('form'); form.style.display = 'none'; form.action = url; form.method = 'post'; document.body.appendChild(form); // 动态创建input并给value赋值 for (var key in params) { var input = document.createElement('input'); input.type = 'hidden'; input.name = key; input.value = params[key]; form.appendChild(input); } form.submit(); form.remove(); }, };