批量打包

import JSZip from "jszip";
import { saveAs } from "file-saver";
import lrz from "lrz";
import moment from "moment";
import { Spin } from "iview";
export const downloadZip = data => {
// console.log(data);
var zip = new JSZip();
Spin.show();
var fileBox = [];
var images = [];
var imagesAccount = 0;
var iszipDone = false;
data.forEach((item, index) => {
// item.mergeImages.forEach((it, idx) => {
if (typeof images[index] == "undefined") {
images[index] = [];
}
if (typeof fileBox[index] === "undefined") {
fileBox[index] = [];
}
images[index].push(item);
item.mergeImages.forEach((it, idx) => {
imagesAccount++;
});
});
zipCtrl();
function zipDone() {
if (imagesAccount == 0) {
if (!iszipDone) {
iszipDone = true;
zip.generateAsync({ type: "blob" }).then(content => {
saveAs(content, moment().format("YYYYMMDD") + ".zip");
Spin.hide();
});
console.log("打包完成");
}
}
}
function imagesCtrl(index) {
images[index].forEach((it, idx) => {
let name = it.license_plate
? it.license_plate + "_" + (index + 1)
: it.vin;
let img = zip.folder(name);

  if (it.mergeImages.length != 0) {
    it.mergeImages.forEach(async (j, i) => {
      if (it.mergeImages[i]) {
        const filename = it.license_plate ? it.license_plate : it.vin;
        const rst = await lrz(it.mergeImages[i]).then(rst => rst);
        const imageData = rst.base64.split(";base64,");
        // console.log(imageData, "imageData");
        let extension = "";

        switch (imageData[0].replace("data:image/", "").toLowerCase()) {
          case "jpeg":
            extension = ".jpg";
            break;
          default:
            extension =
              "." + imageData.replace("data:image/", "").toLowerCase();
        }

        img.file(filename + "_" + i + extension, imageData[1], {
          base64: true
        });
        imagesAccount--;
        // console.log(
        //   "图片置入",
        //   it.mergeImages[i],
        //   "图片待下载置入数量:" + imagesAccount
        // );
        zipDone();
      }
    });
  }
});

}
function zipCtrl() {
fileBox.forEach((item, index) => {
imagesCtrl(index);
});
}
};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容