js 导出文件公共方法

/**
 * @description 模拟a标签下载
 * @param blobUrl url地址
 * @param fileName 文件名称
 */
export function download(blobUrl, fileName) {
  const a = document.createElement('a');
  a.download = fileName;
  a.href = blobUrl;
  a.click();
}

/**
 * @description 导出文件
 * @param url 后端url地址
 * @param fileName 导出文件名称;如"管网台账.xlsx"
 */
export function exportFile(url, fileName, query) {
  const req = new XMLHttpRequest();
  req.open('POST', url, true);
  req.responseType = 'blob';
  req.setRequestHeader('Content-Type', 'application/json');
  req.onload = () => {
    const data = req.response;
    const blob = new Blob([data]);
    const blobUrl = window.URL.createObjectURL(blob);
    download(blobUrl, fileName);
  };
  if (query) {
    req.send(JSON.stringify(query));
  } else {
    req.send();
  }
}

直接调用exportFile即可

你可能感兴趣的:(javascript,前端,开发语言)