vue3 使用qrcodejs2-fix生成二维码并可下载保存

news/2024/7/1 5:58:26

直接上代码

  <el-button @click=‘setEwm’>打开弹框二维码</el-button>
  <el-dialog v-model="centerDialogVisible" align-center >
 	<div class="code">
      <div class="content" id="qrCodeUrl" ref="qrCodeUrl"></div>
     </div>
     <div style="display:flex;justify-content:center">
        <el-button type="primary" @click="saveCode()" >保存二维码</el-button>
     </div>
     </el-dialog>
   <script>
   import QRCode from 'qrcodejs2-fix';
   export default {
   data(){
   return {
   		qrCode:''
   }
   }
   //生成二维码
   methods:{
   	//生成二维码
	   setEwm(){
	   this.centerDialogVisible=true
		   this.$nextTick(() => {
		        this.QRCode= new QRCode(this.$refs.qrCodeUrl, {
		          text: this.qrCode, // 需要转换为二维码的内容
		          width: 260, // 二维码的宽度
		          height: 260, // 二维码的高度
		          colorDark: "#000000", // 二维码的深色部分
		          colorLight: "#ffffff", // 二维码的浅色部分
		          correctLevel: QRCode.CorrectLevel.H, // 二维码的纠错水平
		        })
		      })
		 },
		 // 保存二维码
	    saveCode(name){
	      //获取二维码中格式为imag的元素
	      const nodeList = Array.prototype.slice.call(this.QRCode._el.children)
	        const img = nodeList.find((item) => item.nodeName.toUpperCase() === 'IMG')	
	        	// 选出图片类型
	        // 构建画布
	        let canvas = document.createElement('canvas');
	        canvas.width = img.width;
	        canvas.height = img.height;
	        canvas.getContext('2d').drawImage(img, 0, 0);
	        // 构造url
	        let url = canvas.toDataURL('image/png');
	        const a = document.createElement("a");
	        a.href = url;
	        a.download = `${name}医生二维码.png`;
	        // 触发a链接点击事件,浏览器开始下载文件
	        a.click();
	    },
	   }
   }
   </script>

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/2051016.html

相关文章

ChatGPT带火的HBM是什么?

“ChatGPT是人工智能领域的iPhone时刻&#xff0c;也是计算领域有史以来最伟大的技术之一。” 英伟达创始人兼CEO黄仁勋此前这样盛赞ChatGPT。 ChatGPT突然爆火&#xff0c;对大算力芯片提出了更高更多的要求。近日&#xff0c;据韩国经济日报报道&#xff0c;受惠于ChatGPT&am…

(十九)devops持续集成开发——jenkins的一些常用插件和工具的安装

前言 本节内容会着重介绍jenkins持续集成开发工具的一些常用插件安装以及全局工具的配置安装&#xff0c;并说明其主要作用。在开始插件和工具安装之前&#xff0c;我们要保证可以正常访问网络&#xff0c;并且使用国内的插件更新地址&#xff0c;便于插件的正常安装。官方的地…

如何优化一个看似正常的数据库

通常DBA是不会太了解业务逻辑的&#xff0c;遇到系统中劣质的sql 一般也是以通过添加索引的方式来优化&#xff0c;但是并不是所有的sql都能通过添加索引来优化 这就需要重sql的本身来做分析&#xff0c;另外还要了解什么样的语句会不走索引&#xff01;本文通过几个简单的例子…

水印相机小程序源码

水印相机前端源码&#xff0c;本程序无需后端&#xff0c;前端直接导入即可&#xff0c;没有添加流量主功能&#xff0c;大家开通后自行添加 源码搜索&#xff1a;源码软件库 注意小程序后台的隐私权限设置&#xff0c;前端需要授权才可使用 真实时间地址拍照记录&#xff0c…

三数之和(哈希,双指针)

15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 方法1&#xff1a;哈希算法&#xff08;不推荐&#xff09; 缺点&#xff1a;时间复杂度O&#xff08;N^2&#xff09;&#xff0c;去重情况复杂 class Solution { public:vector<vector<int>> threeSum(ve…

leetcode 反转单词

想一下&#xff0c;我们将整个字符串都反转过来&#xff0c;那么单词的顺序指定是倒序了&#xff0c;只不过单词本身也倒序了&#xff0c;那么再把单词反转一下&#xff0c;单词不就正过来了。 所以解题思路如下&#xff1a; 移除多余空格将整个字符串反转将每个单词反转 举…

300分钟吃透分布式缓存-16讲:常用的缓存组件Redis是如何运行的?

Redis 基本原理 Redis 简介 Redis 是一款基于 ANSI C 语言编写的&#xff0c;BSD 许可的&#xff0c;日志型 key-value 存储组件&#xff0c;它的所有数据结构都存在内存中&#xff0c;可以用作缓存、数据库和消息中间件。 Redis 是 Remote dictionary server 即远程字典服务…

linux统计程序耗时和最大内存消耗

要统计某个程序整个生命周期的耗时和最大内存消耗&#xff0c;可以使用 /usr/bin/time 命令&#xff0c;它提供了详细的执行时间和资源使用信息&#xff0c;包括最大内存消耗。这个工具比 shell 的内置 time 命令提供更多的信息&#xff0c;特别适合于性能分析。 统计程序运行…