vue2 前端生成自定义二维码
小孙爱出bug 2024-06-28 16:03:03 阅读 52
文章目录
概要安装完整代码小结
概要
提示:这里使用的是第三方 :qrcodejs2
安装
npm install qrcodejs2
完整代码
<div>
<div
style="display: flex; justify-content: space-around"
v-for="(qrData, index) in dataList"
:key="index"
>
<div>
<li>{ { qrData.invBinId }}</li>
<li>{ { qrData.invBinName }}</li>
<li>{ { qrData.invPhysicId }}</li>
<li>{ { qrData.invPhysicName }}</li>
</div>
<div ref="qrCodeDiv" :id="'qrCode' + index"></div>
</div>
</div>
import QRCode from "qrcodejs2"; // 引入第三方 qrcodejs2
qrCodeData: ["时间1", "时间2", "时间3"], // 包含每个二维码要展示的内容的数组
qrCodes: [], // 存储生成的二维码实例的数
dataList: [
{
invBinId: "ZK01BC00",
invBinName: "ZK01BC00综合储位",
invPhysicId: "ZK01BC",
invPhysicName: "包材库",
},
{
invBinId: "ZK01BC001",
invBinName: "ZK01BC00综合储位2",
invPhysicId: "ZK01BC3",
invPhysicName: "包材库4",
},
],
bindQRCode() {
this.$nextTick(() => {
this.dataList.forEach((item, index) => {
const qrCodeDiv = this.$refs["qrCodeDiv"][index];
const qrCode = new QRCode(qrCodeDiv, {
// text :要插入的二维码内容
text: `invBinId: ${item.invBinId}, invBinName: ${item.invBinName},
invPhysicId: ${item.invPhysicId}, invPhysicName: ${item.invPhysicName}`,
width: 60,
height: 60,
colorDark: "#333333",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L,
});
this.qrCodes.push(qrCode); // 将生成的二维码实例存储到数组中
});
});
},
小结
这段代码是一个名为bindQRCode的方法,它使用箭头函数来定义。在这个方法中,首先通过this.\$nextTick()确保在下一个DOM更新周期中执行代码。然后对this.dataList中的每个元素执行一个操作,操作包括获取对应的DOM元素(通过this.\$refs["qrCodeDiv"][index]),然后使用QRCode库生成一个二维码实例,并将其存储到this.qrCodes数组中。整体来说,这段代码的作用是根据this.dataList中的数据生成对应的二维码,并将生成的二维码实例存储到数组中。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。