当前位置: 首页 > news >正文

vue2+qrcodejs2+clipboard——实现二维码展示+下载+复制到剪切板——基础积累

最近在写后台管理系统时,遇到一个需求就是要实现二维码的展示+下载+复制到剪切板。
效果图如下:
在这里插入图片描述

1.二维码展示+下载功能——qrcodejs2@0.0.2

我是安装的qrcodejs2@0.0.2,指定了具体的版本号,也可以安装默认的当前稳定版本,即npm安装时不指定版本号。

1.npm/yarn安装qrcodejs2

npm install qrcodejs2
or
yarn add qrcodejs2

2.引入qrcodejs2

由于我只是在单个页面上用到此功能,因此只需要当前页面局部引入,没有全局注册。

import QRCode from 'qrcodejs2';
2.1html代码
<template><a-modaltitle="入职登记表":visible="visible":confirmLoading="confirmLoading"@ok="handleOk"@cancel="handleCancel"width="500px"><a-spin :spinning="confirmLoading" tip="正在处理中请稍后"><div class="qrcode" ref="qrCodeUrl" id="qrcodeId"></div><!-- 作为下载二维码使用 --><a ref="locatorQRCodeDownloadLinkRef" style="display: none"></a><div class="btnCls"><a-button type="primary" @click="handleDownloadLocatorQRCode">下载二维码</a-button></div><div class="btnCls"><a-buttonid="copyBtn"type="primary":data-clipboard-text="copyConfig"ghost@click="handleClipboard">复制链接</a-button></div></a-spin></a-modal>
</template>
2.2js代码
import Clipboard from 'clipboard';
import QRCode from 'qrcodejs2';
export default{data(){return{visible: false,copyConfig: '',qrcode: null,qrcodeImgUrl: '',}},methods:{//弹窗打开调用的接口showModal(){this.visible = true;this.$nextTick(()=>{//创建二维码this.creatQrCode();})},creatQrCode(){let str = window.location.hash;let urlArr = str.split('/');urlArr.splice(urlArr.length - 1, 1);urlArr.push('RecommenH5');let url = window.location.origin + '/' + urlArr.join('/');this.copyConfig = url;console.log(url);document.getElementById('qrcodeId').innerHTML = ''; //在调用qrCode前使用js原生方法清空元素内容this.qrcode = new QRCode(this.$refs.qrCodeUrl, {text: url, // 需要转换为二维码的内容width: 140,height: 140,colorDark: '#000000',colorLight: '#ffffff',correctLevel: QRCode.CorrectLevel.H,});let qrcodeCanvas = ((this.$refs.qrCodeUrl || {})?.getElementsByTagName?.('canvas') || [])?.[0];this.qrcodeImgUrl = qrcodeCanvas?.toDataURL?.('image/png'); // 作为下载图片资源},//下载二维码功能handleDownloadLocatorQRCode() {let downloadLink = this.$refs.locatorQRCodeDownloadLinkRef;downloadLink.setAttribute('href', this.qrcodeImgUrl);console.log('this.qrcodeImgUrl', this.qrcodeImgUrl);downloadLink.setAttribute('download',`二维码_${new Date().getTime()}.png`);downloadLink.click();URL.revokeObjectURL(downloadLink.href);},}
}

2.复制链接功能——clipboard@2.0.8

我是安装的clipboard@2.0.8,指定了具体的版本号,也可以安装默认的当前稳定版本,即npm安装时不指定版本号。

1.npm/yarn安装clipboard

npm install clipboard
or
yarn add clipboard

2.引入clipboard

由于我只是在单个页面上用到此功能,因此只需要当前页面局部引入,没有全局注册。

import Clipboard from 'clipboard';
2.1html代码

同上;
主要代码就是一个按钮:

<a-buttonid="copyBtn"type="primary":data-clipboard-text="copyConfig"ghost@click="handleClipboard">复制链接</a-button
>
2.2复制功能
handleClipboard() {let clipboard = new Clipboard('#copyBtn');clipboard.on('success', () => {this.$message.success(`复制成功`);clipboard.destroy();});
},

完成!!!多多积累,多多收获!

相关文章:

vue2+qrcodejs2+clipboard——实现二维码展示+下载+复制到剪切板——基础积累

最近在写后台管理系统时&#xff0c;遇到一个需求就是要实现二维码的展示下载复制到剪切板。 效果图如下&#xff1a; 1.二维码展示下载功能——qrcodejs20.0.2 我是安装的qrcodejs20.0.2&#xff0c;指定了具体的版本号&#xff0c;也可以安装默认的当前稳定版本&#xff0…...

【PHP】echo 输出数组报Array to string conversion解决办法

代码&#xff1a; <?PHP echo "Hello World!";$demoName array("kexuexiong","xiong");echo "<pre>";var_dump($demoName);echo $demoName; print_r($demoName);echo "</pre>"; ?>输出结果&#xff1…...

Arduino驱动MiCS-4514气体传感器(气体传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序...

marked在vue项目中改变超链接跳转方式和图片放大预览

marked在vue项目中改变超链接跳转方式和图片放大预览 这里我是另起一个js文件对marked的配置做了修改&#xff0c;参考如下 import marked from marked let renderer new marked.Renderer() const linkRenderer renderer.link const imgRenderer renderer.image // 超链接…...

leetcode485. 最大连续 1 的个数

思路&#xff1a;【双指针】 left左边界&#xff0c;right往右跑遇到0&#xff0c;则计算该长度。并更新cnt&#xff08;最大连续1个数&#xff09;。 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int left 0, right 0;int cnt 0;…...

linux 源代码编译

源代码编译 有时候会在linux上下载源码包&#xff0c;然后进行编译成可执行的文件&#xff0c;这个过程需要经过configure、make、make install、make clean四个步骤 configure 为这个程序在当前的操作系统环境下选择合适的编译器和环境参数来编译该代码 make 对程序代码进行编…...

C语言日常刷题 1

文章目录 题目答案与解析1234.5.6. 题目 1、执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09; int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf(“%d,%d\n”&#xff0c;x, y); return 0; } A: 5,7 B: 7,5 C: 3,8 D: 8…...

es和数据库同步方案

5.5 课程信息索引同步 5.5.1 技术方案 通过向索引中添加课程信息最终实现了课程的搜索&#xff0c;我们发现课程信息是先保存在关系数据库中&#xff0c;而后再写入索引&#xff0c;这个过程是将关系数据中的数据同步到elasticsearch索引中的过程&#xff0c;可以简单成为索引…...

手机NFC功能是什么?

手机NFC功能是什么&#xff1f; 随着智能手机的不断发展和普及&#xff0c;NFC(近场通讯)功能已经成为了我们生活中不可或缺的一部分。NFC是一种无线通信技术&#xff0c;可以让手机和其他设备之间进行快速的数据交换和支付操作。那么&#xff0c;手机NFC功能是什么&#xff1…...

零拷贝技术详解

当涉及到网络编程和IO操作时&#xff0c;数据拷贝是一个常见的性能瓶颈。传统的数据拷贝过程中&#xff0c;数据需要从内核缓冲区复制到用户空间缓冲区&#xff0c;然后再从用户空间缓冲区复制到内核缓冲区&#xff0c;这个过程会耗费大量的CPU时间和内存带宽&#xff0c;降低系…...

【VS Code插件开发】消息通信(四)

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域优质作者、阿里云专家博主&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4e2; 资料领取&#xff1a;前端…...

开源硬件:下一个技术革命?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

开发一个npm组件包

vue项目初始化 vue create mytest 启动项目以后 组件开发 开发的组件写在 package中 如下如例 开发一个 listpage的组件 里面放了一个a链接注册组件配置打包 "package": "vue-cli-service build --target lib ./src/package/index.js --name managerpage -…...

有限与无限游戏 | 真北荐书

2023佛山敏捷之旅暨DevOps Meetup志愿者为进行大会的组织与准备&#xff0c;每周三晚有一个例会。 例会前等人的时间&#xff0c;涌现出一个小的分享环节。今天分享这本书&#xff1a;《有限与无限游戏》。 大家选择成为志愿者&#xff0c;是一个无限游戏。而组织活动和完成各种…...

网络安全(黑客)自学剖析

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全…...

Leetcode每日一题:1267. 统计参与通信的服务器

原题 这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表示没有。 如果两台服务器位于同一行或者同一列&#xff0c;我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其…...

HarmonyOS开发:超详细了解项目的工程结构

前言 系列文章目录&#xff1a; HarmonyOS开发第一步&#xff0c;熟知开发工具DevEco Studio 当我们熟练的掌握了DevEco Studio之后&#xff0c;就可以创建项目进行练习了&#xff0c;和市场上大多数IDE一样&#xff0c;DevEco Studio也给我们提供了很多的实例模板&#xff0c…...

HTML基础知识点

目录 ​编辑一、使用 vscode 二、研究代码的特点 三、HTML 常见标签 注释标签 标题标签 段落标签 换行标签 格式化标签 图片标签 超链接标签 表格标签 列表标签 表单标签&#xff1a; form 标签 input标签&#xff1a; select textarea标签&#xff1a; 无语…...

基于CBAM-CNN卷积神经网络预测研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

iOS开发Swift-基本运算符

1.一元、二元、三元运算符 一元单一操作对象-a !b c!二元两个操作对象2 3三元三目运算符a ? b : c 2.赋值运算符() let a 10 var b 5 b a let (x, y) (1, 2)赋值运算符不返回任何值&#xff0c;所以 if x y { ... } 无效。 3.算术运算符 - * / 默认不允许数…...

Video2X:你的AI视频画质修复专家,让老旧视频重获新生

Video2X&#xff1a;你的AI视频画质修复专家&#xff0c;让老旧视频重获新生 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendin…...

拆解安防摄像头的“眼睛”:从IMX290 Sensor到镜头,如何一步步调出通透画质?

拆解安防摄像头的“眼睛”&#xff1a;从IMX290 Sensor到镜头&#xff0c;如何一步步调出通透画质&#xff1f; 在安防监控领域&#xff0c;画质表现直接决定了产品的核心竞争力。当我们谈论"通透画质"时&#xff0c;实际上是在讨论一种光学与电子系统的协同优化艺术…...

TC2526 低功耗原边反馈开关电源芯片

概述 TC2526 是一款低功耗原边反馈&#xff08;PSR&#xff09;开关电源芯片&#xff0c;其内部集成了大功率 BJT 管&#xff0c;适用于隔离型的高效低功耗便携式设备充电器应用。TC2526 采用独特具有恒流恒压功能的原边反馈控制技术&#xff0c;以及独特的轻载调频技术降低轻载…...

抖音下载器实战指南:告别手动保存,批量获取无水印内容

抖音下载器实战指南&#xff1a;告别手动保存&#xff0c;批量获取无水印内容 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fal…...

从OBD到功能安全:聊聊Autosar Dem模块里故障数据的‘生老病死’与内存管理策略

从OBD到功能安全&#xff1a;Autosar Dem模块中故障数据的生命周期与内存博弈 当一辆现代汽车在道路上飞驰时&#xff0c;它的电子控制单元(ECU)内部正上演着无数微观的"生存游戏"。在Autosar Dem模块的内存空间中&#xff0c;每一个故障数据都如同有生命的个体&…...

对比直接采购与通过Taotoken使用大模型的月度账单差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接采购与通过Taotoken使用大模型的月度账单差异 1. 背景与观察方法 我们是一个小型技术工作室&#xff0c;日常工作需要频繁…...

3分钟搞定B站视频下载:免费解锁4K大会员高清视频的完整教程

3分钟搞定B站视频下载&#xff1a;免费解锁4K大会员高清视频的完整教程 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾为无法…...

NCM转MP3终极指南:3步解锁网易云音乐加密文件

NCM转MP3终极指南&#xff1a;3步解锁网易云音乐加密文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲&#xff0c;却发现只能在官方客户端播放&#xff1f;NCM格式的限制让你无法在其他设…...

AI 系统多模型路由与降级架构设计:从流量调度到无感切换的工程实践

背景 / 现象 在一个典型的 AI 应用系统中&#xff0c;主模型&#xff08;如 GPT-4o、Claude 3.5 等&#xff09;通常承担核心推理任务。但在生产环境中&#xff0c;主模型可能因额度耗尽、响应超时、服务不可用或突发限流等原因导致调用失败。此时&#xff0c;用户侧可能表现为…...

终极指南:3种方法快速部署Windows官方包管理器Winget

终极指南&#xff1a;3种方法快速部署Windows官方包管理器Winget 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirrors/wi/w…...