|
|
@ -33,6 +33,47 @@ export function delay(ms = 240) { |
|
|
|
return new Promise((resolve) => setTimeout(() => resolve(void 0), ms)); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @param {{ method?: string; url: string; data?: string; type?: string; filename?: string; }} options |
|
|
|
*/ |
|
|
|
export function exportImgFile({ |
|
|
|
url, |
|
|
|
method = "post", |
|
|
|
data, |
|
|
|
type = "application/vnd.ms-excel", |
|
|
|
filename = "download", |
|
|
|
ext = "xlsx", |
|
|
|
} = {}) { |
|
|
|
if (!url) return; |
|
|
|
const closeMessage = loadingMessage({ message: "文件下载中..." }); |
|
|
|
|
|
|
|
request({ |
|
|
|
url, |
|
|
|
method, |
|
|
|
responseType: "blob", |
|
|
|
data: { |
|
|
|
...data, |
|
|
|
} |
|
|
|
}) |
|
|
|
.then((result) => { |
|
|
|
const blob = new Blob([result], { type }); |
|
|
|
const downloadElement = document.createElement("a"); |
|
|
|
const href = window.URL.createObjectURL(blob); |
|
|
|
downloadElement.href = href; |
|
|
|
downloadElement.download = result.filename || `${filename}.${ext}`; |
|
|
|
document.body.appendChild(downloadElement); |
|
|
|
downloadElement.click(); |
|
|
|
document.body.removeChild(downloadElement); |
|
|
|
window.URL.revokeObjectURL(href); |
|
|
|
|
|
|
|
Message.success("文件下载成功"); |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
Message.error("文件下载失败"); |
|
|
|
}) |
|
|
|
.finally(() => closeMessage()); |
|
|
|
} |
|
|
|
/** |
|
|
|
* |
|
|
|
* @param {{ method?: string; url: string; data?: string; type?: string; filename?: string; }} options |
|
|
|