import { saveAs } from 'file-saver';
//下载文件
const downloadFile = (content, filename) => {
let a = document.createElement('a')
a.href = content
a.download = filename
a.click()
}
const getBlob = (url,data) => {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.responseType = 'blob';
xhr.setRequestHeader('content-type','application/json'); //设置请求头
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send(JSON.stringify(data));
});
};
const PrintPickList = ()=>{
const {client_id,contact_name,contact_phone,harvest_address,outbound_code,outbound_date,delivery_code,batch_contract_id} = basicInfo
const listParams = {
client_id:Number(client_id),client_Id:Number(client_id), clientId:Number(client_id),contact_name,contact_phone,client_address:harvest_address,work_order_num:outbound_code,batch_contract_id:batch_contract_id,
delivery_date: outbound_date ? outbound_date.format('YYYY-MM-DD') : '',
product_details: storeIOCreate.detailList ||[]//产品配件信息
}
const downloadExcelUrl = `https://admin-api.zhgcloud.com/outbound-order/picking-order/excel?${qs.stringify(listParams)}&token=${
user.token
}`;
const fileUrl = `https://admin-api.zhgcloud.com/outbound-order/picking-order/excel?token=${
user.token
}`;
// window.open(downloadExcelUrl);
getBlob(fileUrl,listParams).then(res => {
// fileUrl指的是文件路径 fileName指的是自定义文件名称
// saveAs(blob, '货单');
console.log("blob",res);
const blob = new Blob([res],{ type:'application/vnd.ms-excel' })
const url = URL.createObjectURL(blob)
console.log(moment())
downloadFile(url,`CK_PickingOrder${new Date()}.xls`)
saveAs(blob, `CK_PickingOrder${moment().format('YYYY-MM-DD')}.xls`);//或者
});
}
文件下载,post导出文件
最新推荐文章于 2024-03-14 11:32:03 发布
这篇博客介绍了如何利用File-Saver库在JavaScript中实现文件下载功能。通过创建模拟点击的`<a>`标签,配合`getBlob`函数进行POST请求获取文件Blob对象,然后使用`saveAs`方法保存文件。示例代码展示了如何从特定URL下载Excel文件,并自定义文件名。
摘要由CSDN通过智能技术生成