记录使用QRCode 显示并下载二维码图片

记录使用QRCode 生成二维码

项目安装qrcode 命令:npm install --save qrcodejs2
引入 import QRCode from ‘qrcodejs2’
后端提供qrcodeId
使用场景vue element el-table

例如表格数据tableData

mounted(){
	this.tableData = [ {qrCodeId:'147152707256324096'} ]
	this.tableData.forEach(item=>{
		this.qrcodeFun(item.qrCodeId)
	})
}

表格内

<el-table-column  label='二维码'>
    <template slot-scope='scope'>
       <div :id="'qrcode'+scope.row.qrCodeId" class='qrcode-box'></div>
    </template>
</el-table-column>

初始化数据时调用下面方法

method:{
	 /**
     * 生成二维码图片
     * @param qrcodeId  二维码url
    * */
	qrcodeFun(qrcodeId){
		//防止未渲染页面就调用方法找不到对应元素Id
	    this.$nextTick(()=>{
	    	// 'qrcode'+qrcodeId保证id唯一性
	        document.getElementById('qrcode'+qrcodeId).innerHTML = '';
	        new QRCode( 'qrcode'+qrcodeId,{
	            width:100,
	            height:100,
	            text:qrcodeId,
	            colorDark:'#000',
	            colorLight:'#fff',
	            correctLevel:QRCode.CorrectLevel.H
	        })
	    })
	},	
}
 /**
   * 打印二维码
   * @param qrcodeId  二维码url
  * */
   printQRCode(qrcodeId){
        const myCanvas = document.getElementById('qrcodeDown'+qrcodeId).getElementsByTagName('canvas')
        const a = document.createElement('a');
        a.href = myCanvas[0].toDataURL('image/png').replace('image/png', 'image/octet-stream')
        a.download = '设备二维码'+new Date().getTime()+'.png'
        a.click()
        this.$message.success('正在下载。');
   },

最终显示如下
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用qrcode.vue生成二维码的步骤如下: 1. 引入qrcode.vue组件,该组件的体积相对较小,但不能添加中心logo。 2. 在Vue模板中使用vue-qr组件,设置id为"qrcode",并传入生成二维码所需的text和size参数。 3. 在Vue模板中添加一个按钮,当点击按钮时触发saveImg函数。 4. 在Vue的script setup中,使用import语句引入qrcode.vue组件和其他所需的资源。 5. 根据需要,可以在logoSrc变量中设置logo的路径。 6. 在saveImg函数中,获取生成的二维码图片元素,创建一个下载链接,并设置链接的href和download属性。 7. 点击按钮后,调用a元素的click方法,实现下载二维码的功能。 你可以参考以下代码示例: ```html <template> <qrcode id="qrcode" :text="value" size="135"></qrcode> <br /> <el-button @click="saveImg">下载二维码</el-button> </template> <script setup> import qrcode from 'qrcode.vue' import code_logo from '../../assets/vue.svg' const props = defineProps({ value: { type: String, default: 'https://www.baidu.com/' } }) let logoSrc = code_logo function saveImg() { let picData = document.getElementById("qrcode") let a = document.createElement("a"); a.href = picData.src; a.download = "qrcode.png"; a.click(); } </script> ``` 请注意,以上代码只是一个示例,具体的实现方式可能会根据你的实际需求和项目配置而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3项目生成并下载二维码,关于vue-qr.vue与qrcode.vue插件之间的区别](https://blog.csdn.net/qq_51758070/article/details/128232266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值