1.封裝了一個供下載使用的方法
export function PostExport(code, paramJson) {
return new Promise((resolve, reject) => {
var json = { code: code, request: paramJson };
var type = { responseType: "blob" };
axios
.post(
context.$net.PAGE_URL,
qs.stringify({ requestData: JSON.stringify(json) }),
type
)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data);
});
});
}
2.使用的時候根據封裝的方法(此方法是下載壓縮文件)
PostExport("E0004", paramJson).then(res => {
const blob = new Blob([res], { type: "application/zip" });
const downloadElement = document.createElement("a");
const href = window.URL.createObjectURL(blob); //創建下載的鏈接 (可以是 File 對象、Blob 對象或者 MediaSource 對象)
downloadElement.href = href;
downloadElement.download = `簽約協議${this.getCurrent[0]}.zip`; //下載后文件名
document.body.appendChild(downloadElement); //將a節點添加到document.body末尾
downloadElement.click(); //點擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
window.URL.revokeObjectURL(href); //釋放blob對象
});
}
2.1(此方法是下載excel文件)
PostExport("R0027", paramJson).then(res => {
window.console.log(res);
var blob = new Blob([res]);
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //創建下載的鏈接
downloadElement.href = href;
downloadElement.download = `好日子贖回明細${this.getCurrent[0]}.xls`; //下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //點擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
window.URL.revokeObjectURL(href); //釋放掉blob對象
});