this.data.forEach((item) => { this.dataList.push(item.spaceNumber); }); // 初始化压缩包 var zip = new JSZip(); var img = zip.folder("车位号二维码"); // 遍历url生成二维码 let url = "http://192.168.1.73:8080/#/H5_batteryDes"; //需要跳转的地址 this.$nextTick(() => { this.dataList.forEach((item, index, arr) => { // this.$refs.codeItem[index].innerHTML = ""; var qrcode = new QRCode(this.$refs.codeItem[index], { text: "https://www.baidu.com/", //二维码内容 width: 200, height: 200, render: "table", colorDark: "#333333", //二维码颜色 colorLight: "#ffffff", //二维码背景色 correctLevel: QRCode.CorrectLevel.H, //容错率,L/M/H }); html2canvas(document.querySelector("#qrcode"), { logging: false, useCORS: true, }).then((canvas) => { var imgUrl = canvas.toDataURL("png"); // 需要对base64进行截取处理,否则无法顺利打包 var regex = /data:image\/.*;base64,/; imgUrl = imgUrl.replace(regex, ""); // 添加进img img.file(item + ".png", imgUrl, { base64: true }); this.$nextTick(() => { // 判断如果为最后一张图片 if (index == arr.length - 1) { zip.generateAsync({ type: "blob" }).then(function (content) { // 调用api进行下载 FileSaver.saveAs(content, "二维码.zip"); }); } }); }); }); });
时间: 2023-06-05 15:05:17 浏览: 228
Parallel.ForEach的卡死现象(线程操作问题C#源码实例)
这段代码是一个 JavaScript 的函数,包含以下几个步骤:
1. 遍历一个数组 this.data,对每一个元素执行一个回调函数,该函数将该元素的 spaceNumber 属性添加到另一个数组 dataList 中;
2. 创建一个压缩包对象 zip(使用第三方库 JSZip);
3. 在 zip 中创建一个名为“车位号二维码”的文件夹;
4. 遍历之前生成的 dataList 数组,使用一个固定的 url("http://192.168.1.73:8080/")加上每个元素的 spaceNumber,生成一个二维码图片,并将该图片添加到之前创建的文件夹中。
总之,该函数的作用是生成一组车位号的二维码图片,并打包成压缩包。
阅读全文