import { ElMessage } from 'element-plus'
function getBlob(url, cb) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = function () {
if (xhr.status === 200) {
cb(xhr.response);
}
};
xhr.send();
}
function saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement("a");
var body = document.querySelector("body");
link.href = window.URL.createObjectURL(blob);
link.download = filename;
link.style.display = "none";
body.appendChild(link);
link.click();
body.removeChild(link);
window.URL.revokeObjectURL(link.href);
}
}
function download(url, filename) {
getBlob(url, function (blob) {
saveAs(blob, filename);
});
}
function DownexportFiles(file, filename, type) {
const blob = new Blob([file], { type: 'application/zip' });
let fileName = type ? `${filename}.${type}` : `${filename}`
if ('download' in document.createElement('a')) {
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
ElMessage.success('下载成功')
elink.click();
URL.revokeObjectURL(elink.href);
document.body.removeChild(elink);
} else {
navigator.msSaveBlob(blob, fileName);
}
}
export { download, DownexportFiles };
使用
import { DownexportFiles,download } from "@/utils/download";
DownexportFiles(res.data, "全院协议", "xlsx");
download(i.url, i.filename);