本文介绍在Vue项目中如何使用jsbarcode和qrcodejs2库生成条形码与二维码。详细列出安装引入步骤、参数配置及DOM操作代码。重点解决打印时因重复实例化导致的二维码叠加问题,提供通过移除子节点实现打印前清理的解决方案。
条形码插件jsbarcode
安装:npm install jsbarcode --save
在需要生成条形码的页面引入即可
import JsBarcode from 'jsbarcode'需要显示条形码的页面里
<img id="barcode1">调用构造函数生成条形码
let barCode1 = this.info.marIdCode;
let barheight = this.imgHeight;
JsBarcode("#barcode1",barCode1,{
format:"CODE128",//条形码的格式
width:1,//线宽
height:barheight,//条码高度
lineColor:"#000",//线条颜色
displayValue:false,//是否显示文字
margin:2//设置条形码周围的空白区域
})2.二维码插件
安装:npm install qrcodejs2 --save
同理,在需要二维码的页面中引入即可
import QRCode from 'qrcodejs2'需要显示二维码的页面中
<div id="SetQRCode"></div>根据自身需求逻辑使用
let qrCode = "#"+this.info.marId+"#"+this.info.supManufacturingBatch+"#"+this.info.exp+"#"+this.info.minflowId+"#"+this.info.num;
this.QRCode = qrCode;
let qrcodeDiv = document.getElementById("SetQRCode")
let qrcode = new QRCode(qrcodeDiv,{
text:this.QRCode,//二维码中的内容
width:this.QRWidth,
height:this.QRHeight,
colorDark:"#000",//二维码颜色
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
})
this.qrcode = qrcode;如果只需展示二维码且无需按钮触发或打印,可参考上述步骤。
打印!!!
在实现二维码打印功能时,曾遇到一个棘手问题:进入打印页面后,若点击取消再重新点击打印,会发现生成了两个二维码,且重复操作会导致二维码不断叠加生成。
因此需要删除之前生成的二维码。代码如下:
let qrCode = "#"+this.info.marId+"#"+this.info.supManufacturingBatch+"#"+this.info.exp+"#"+this.info.minflowId+"#"+this.info.num;
this.QRCode = qrCode;
let qrcodeDiv = document.getElementById("SetQRCode")
let qrcode = new QRCode(qrcodeDiv,{
text:this.QRCode,
width:this.QRWidth,
height:this.QRHeight,
colorDark:"#000",
correctLevel: QRCode.CorrectLevel.L
}
this.qrcode = qrcode;
// ………………………………………………………………(解决重复点击打印按钮会重复一直生成二维码)
let childs = document.getElementById("SetQRCode").childNodes;
for(let i = childs.length -2 ; i>=0 ; i--){
document.getElementById("SetQRCode").removeChild(childs[i]);
}总结
到此这篇关于vue中生成条形码(jsbarcode)和二维码(qrcodejs2)的文章就介绍到这了,更多相关vue生成条形码和二维码内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!