todownload() {
const zip = new JSZip();
const promises = [];
//this.multipleSelection是我自己的附件url地址数组 你可以改成你的数组
this.multipleSelection.forEach((item) => {
const promise = this.download(item.path).then((data) => {
// 下载文件, 并存成ArrayBuffer对象
//item.fileName companyAttachmentsList里的文件名
zip.file(item.name, data, { binary: true }); // 逐个添加文件
});
promises.push(promise); //加到promises队列里
});
Promise.all(promises).then(() => {
//异步队列全部完成时 执行下面代码
zip.generateAsync({ type: "blob" }).then((content) => {
// 生成二进制流
saveAs(content, "打包下载.zip"); // 利用file-saver保存文件
});
});
},
download(href) {
return new Promise((resolve, reject) => {
this.$axios({
method: "get",
url: href,
responseType: "arraybuffer",
})
.then((data) => {
resolve(data.data);
})
.catch((error) => {
reject(error.toString());
});
});
},