vue+vue-qr生成带logo的二维码并自动下载

1.安装 vue-qr组件:

yarn vue-qr --save
或者
npm install vue-qr --save

2.页面挂载使用:(也可以在main.js全局挂载)

单页面引入:

import vueQr from 'vue-qr';
export default {components: {vueQr},
}

3.全局挂载引入:

import VueQr from 'vue-qr'
new Vue({components: {VueQr}
})

4.案列代码
4.1使用vue-qr并绑定ref,利用每条数据的id做区分

<template><div class="row wraps"><divclass="column center"style="margin:12px;"v-for="(row, index) in qrcodeList":key="index"><vue-qr:ref="'qrCode' + row.id":logoSrc="require('../assets/room-logo.png')":text="`${row.frontUrl}?id=${row.id}&bizCode=${row.bizCode}&serialNum=${row.serialNum}`":size="800":correctLevel="2"></vue-qr><div>{{ row.id }}</div></div></div>
</template><!--  !!!!配置属性!!!!text	编码内容correctLevel	容错级别size	尺寸, 长宽一致, 包含外边距margin	二维码图像的外边距, 默认 20pxcolorDark	实点的颜色colorLight	空白区的颜色bgSrc	欲嵌入的背景图地址gifBgSrc	欲嵌入的背景图 gif 地址,设置后普通的背景图将失效。设置此选项会影响性能backgroundColor	背景色backgroundDimming	叠加在背景图上的颜色, 在解码有难度的时有一定帮助logoSrc	嵌入至二维码中心的 LOGO 地址logoScale	用于计算 LOGO 大小的值, 过大将导致解码失败, LOGO 尺寸计算公式 logoScale*(size-2*margin), 默认 0.2logoMargin	LOGO 标识周围的空白边框, 默认为0logoBackgroundColor	Logo 背景色,需要设置 logo marginlogoCornerRadius	LOGO 标识及其边框的圆角半径, 默认为0whiteMargin	若设为 true, 背景图外将绘制白色边框dotScale	数据区域点缩小比例,默认为0.35autoColor	若为 true, 图像将被二值化处理, 未指定阈值则使用默认值binarizeThreshold	(0 < threshold < 255) 二值化处理的阈值callback	生成的二维码 Data URI 可以在回调中取得,第一个参数为二维码 data URL, 第二个参数为 props 传过来的 qid(因为二维码生成是异步的,所以加个 id 用于排序)bindElement	指定是否需要自动将生成的二维码绑定到HTML上, 默认是TRUE-->

4.2.注册对应组件并调用接口使用for循环进行二维码下载,由于谷歌浏览器下载文件限制每次只能下载10个文件,所以使用setTimeout计时器延时下载

<script>
import vueQr from "vue-qr";
import { getQrCodeList } from "../request/api";
export default {components: {vueQr,},data() {return {qrCodeObj: {bizCode: "sjz_hth_20240501",// bizCode: "test_hte_0501",pageNum: 15,pageSize: 200,},qrcodeList: [],};},created() {this.getQrCodeList();},methods: {//获取二维码列表getQrCodeList() {getQrCodeList(this.qrCodeObj).then((res) => {this.qrcodeList = res.rows;this.$nextTick(() => {this.downloadBatch(0); // 从第一个文件开始下载});});},downloadBatch(startIndex) {const batchSize = 10; // 每批次下载的文件数量const endIndex = Math.min(startIndex + batchSize, this.qrcodeList.length);for (let i = startIndex; i < endIndex; i++) {// 检查引用是否存在if (this.$refs["qrCode" + this.qrcodeList[i].id]) {setTimeout(() => {this.download(this.qrcodeList[i].id);}, 2000); // 设置一个延迟时间}}// 如果还有文件需要下载,则延迟一段时间后继续下载if (endIndex < this.qrcodeList.length) {setTimeout(() => {this.downloadBatch(endIndex);}, 5000); // 设置一个延迟时间}},download(sourceName) {// 下载const iconUrl = this.$refs["qrCode" + sourceName][0].$el.src;const a = document.createElement("a"); // 自定义a标签a.download = sourceName;a.href = iconUrl;a.click(); // 直接触发点击事件下载文件},},
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

张小泉签约实在智能,用实在Agent打造自动化高

在不少老杭州人的童年记忆里&#xff0c;妈妈裁剪衣服、料理食材、修剪各种物品&#xff0c;用的都是张小泉刀剪。 近日&#xff0c;实在智能与“刀剪第一股”张小泉&#xff08;股票代码&#xff1a;301055.SZ&#xff09;正式达成合作&#xff0c;实在Agent数字员工助力张小…

【Godot4.2】自定义数字处理相关函数库 - myNum

概述 在编写myList类的时候&#xff0c;涉及了格式化显示有序列表的序号问题&#xff0c;于是编写出了一套新的函数库myNum&#xff0c;用于方便的处理整数或浮点数格式化。 初期只加入了几个简单函数&#xff0c;后续会加入十、十六、二进制转化以及科学计数法等内容。&…

正则表达式(Regular Expression)详解

一、简介 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母、数字&#xff09;和特殊字符&#xff08;\、&#xff1f;、[等&#xff09;&#xff0c;可以用来描述和匹配字符串的特定模式。正则表达式提供…

【工具】-根源上解决VScode打印输出乱码的问题

目录 1 第一步&#xff1a; 改编译命令&#xff0c;保持一致2 第二步&#xff1a; 更改VScode的编码格式-保持一致 1 第一步&#xff1a; 改编译命令&#xff0c;保持一致 看一下你的控制台的编译的命名后缀&#xff0c;有两个关键的参数&#xff0c;如下图&#xff1a; “-f…

不同路径 1 2

class Solution {public int uniquePaths(int m, int n) {int[][] dpnew int[m][n];//记录到每个格子有多少种路径for(int i0;i<m;i) dp[i][0]1;for(int j0;j<n;j) dp[0][j]1;//初始化for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i-1][j]dp[i][j-1];}}return …

C++—DAY4

在Complex类的基础上&#xff0c;完成^&#xff0c;<<&#xff0c;>>&#xff0c;~运算符的重载 #include <iostream>using namespace std; class Complex {int rel;int vir; public:Complex(){}Complex(int rel,int vir):rel(rel),vir(vir){}void show(){c…

深度学习中的熵、交叉熵、相对熵(KL散度)、极大释然估计之间的联系与区别

熵的最初来源于热力学。在热力学中&#xff0c;熵代表了系统的无序程度或混乱程度&#xff0c;也可以理解为系统的热力学状态的一种度量。后来被广泛引用于各个领域中&#xff0c;如信息学、统计学、AI等&#xff0c;甚至社会学当中。接下来将大家领略一下深度学习中熵的应用。…

深度学习框架TensorFlow和PyTorch的选取

大家好&#xff0c;当涉及到深度学习框架时&#xff0c;TensorFlow和PyTorch是最受欢迎的两个选择。它们都是功能强大的开源库&#xff0c;使开发人员和研究人员能够构建和训练用于各种应用的神经网络。本文将探讨TensorFlow和PyTorch之间的主要区别&#xff0c;帮助你做出明智…

qt环境下给lineEdit设置数值精度为0.5

在Qt环境中&#xff0c;要为QLineEdit控件设置数值输入的精度为0.5&#xff0c;即允许用户输入以0.5为步进单位的数值&#xff0c;通常并不直接通过QLineEdit本身来实现&#xff0c;因为QLineEdit默认用于接收任意文本输入。为了达到您的需求&#xff0c;您可以采取以下两种方法…

“AI技能,新的职场通行证?揭秘阿里最新职业趋势报告“

随着“五一”劳动节的临近&#xff0c;阿里巴巴发布了一份引人注目的报告——《“AI”职业趋势报告》。这份报告不仅揭示了人工智能&#xff08;AI&#xff09;在各行各业中的关键作用&#xff0c;也预示了一个全新的工作时代正在加速到来。 报告中明确指出&#xff0c;AI的应用…

前端CSS基础12(布局)

前端CSS基础12&#xff08;布局&#xff09; 版心常用布局名词 版心 在网页设计中&#xff0c;“版心”&#xff08;也称为"内容区"&#xff09;是指网页上主要内容显示的区域&#xff0c;通常是页面中间部分。版心的主要功能是容纳网页的核心内容&#xff0c;例如文…

多路递归的一些算法题

前言 首先我想讲一下&#xff0c;我对多路递归的理解吧&#xff0c;我认为多路递归就是循环中套回调&#xff0c;对于循环有几次就是几叉树&#xff0c;就好比我们常用的二叉树的dfs(node.left) 和 dfs(node.right)等前中后序遍历&#xff0c;也就是for (int i 0; i < 2; …

Windows API函数之网络类函数

一. API之网络函数 1.1、WNetAddConnection函数 &#xff08;1&#xff09;函数的概述&#xff1a; WNetAddConnection是一个Windows API函数&#xff0c;用于添加一个新的网络连接。它通常用于连接到网络资源&#xff0c;如网络驱动器或共享文件夹。该函数将创建的网络连接存…

zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录 一、前提二、告警配置1.邮件告警脚本配置2.短信告警脚本配置3.zabbix添加报警媒介4.zabbix创建动作4.给用户添加报警媒介 一、前提 已经搭建好zabbix-server 在需要监控的mysql服务器上安装zabbix-agent2 上述安装步骤参考我的上篇文章&#xff1a;通过docker容器安装za…

新时代凌迟:考研

我不喜欢上班&#xff0c;但我很欣赏老板的品味&#xff0c;因为咱们公司竟然还在订阅报纸&#xff0c;而且只有一份&#xff0c;《中国青年报》。 这份报纸我最喜欢看的是“冰点周刊”专栏&#xff0c;因为这个栏目能让读者相信&#xff1a;报纸远远可以超越一天的生命。 昨天…

如何用java复制图片

如何用java复制文件中的图片 public static void main(String[] args){String src"这里放你要复制的图片的地址&#xff0c;记得在后面加.jpg";//否则可能会报拒绝访问或者无权限String target"这里放你要复制到的文件的地址&#xff0c;同样&#xff0c;也要加…

代码随想录学习Day 31

435.无重叠区间 题目链接 讲解链接 本题思路与前一道类似&#xff0c;代码只需稍作修改。当后一个区间左边界小于前一个区间右边界时说明这两个区间存在重叠部分&#xff0c;此时将count 1&#xff0c;并更新右边界为二者中较小的值即可。 class Solution:def eraseOverla…

Windows安装Elasticsearch 7.9.2

1 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-windows-x86_64.zip 2 配置 进入config目录&#xff0c;打开elasticsearch.yml文件&#xff0c;给集群和节点配置名称。 cluster.name: my-es node.name: node-1 3 启动 打开bin目录&am…

CyberData统一元数据服务

CyberData统一元数据服务功能完善&#xff0c;实现了湖仓平台元数据在整个平台的统一管理以及外部数据源元数据的主动发现和多计算引擎间元数据的互通互联。 同时&#xff0c;我们支持跨多元计算场景&#xff0c;以及在元数据基础上的统一数据权限管理和数据湖的自动化优化加速…

React动态菜单权限控制完全指南

动态菜单权限控制是后台管理系统中的一个常见需求&#xff0c;它确保了不同角色的用户只能访问他们有权限查看的功能。以下是实现动态菜单权限控制的具体流程&#xff1a; 定义菜单结构和权限&#xff1a; 设计一个菜单配置&#xff0c;通常是一个数组&#xff0c;其中每个菜单…