关于下载模版下载附件
方法一
//点击方法
async downloadTemplateBtn() {
// 调用下载模板的API,获取到文件的数据和状态码
const { data, code } = await downloadTemplate(this.code);
if (code !== 200) return;
// 获取到文件的URL
this.templateUrl = data.fileIdDesc[0].url;
// 创建XMLHttpRequest对象
const xhr = new XMLHttpRequest();
xhr.open("GET", this.templateUrl, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.responseType = "blob";
// 在下载完成后的回调函数中执行文件下载
xhr.onload = function () {
if (this.status === 200) {
// 创建一个URL对象
const url = window.URL.createObjectURL(this.response);
// 创建一个隐藏的<a>元素,设置其href和download属性
const link = document.createElement("a");
link.href = url;
link.download = data.codeDesc + ".xlsx"; // 文件名
// 设置样式为隐藏,并添加到DOM中
link.style.display = "none";
document.body.appendChild(link);
// 模拟点击下载链接
link.click();
// 下载完成后移除<a>元素,并释放URL对象
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
}
};
// 发送XMLHttpRequest请求,开始下载文件
xhr.send();
},
方法二
// 文件下载
DownloadEviField(id) {
if (!id) {
return;
}
const loading = this.$loading({
lock: true,
text: "请求下载中...",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
FileDetail(id).then((res) => {
if (res.code === 200) {
window.open(res.data[0].url);
loading.close();
}
});
},