首页 > 其他分享 >vue 前端生成二维码,并转换为图片

vue 前端生成二维码,并转换为图片

时间:2023-04-27 10:12:16浏览次数:38  
标签:vue 300 前端 生成 二维码 imgData 图片

vue 前端生成二维码,并转换为图片

~牧马~

于 2021-05-27 15:08:03 发布

2760
 收藏 7
分类专栏: vue 文章标签: vue 生成二维码 自动生成的二维码转图片
版权

这篇文章主要是分享下自己的收获,也是自己遇到的问题:

前端如何自己生成二维码?
前端如何将生成的二维码转成图片并展示?
如何控制二维码的显隐?
话不多说,直接上干货
base64如何转换成图片

npm install qrcodejs2 //生成二维码的包
npm install html2canvas //转为图片格式的包

重点部分1:

//`生成二维码部分`
                new QRCode(this.$refs.qrCodeDiv,{
                    text:"http://19*.16*.12*.2*:8080/#/login?" + this.work_point.id,
                    //text为转换为二维码的文本,可以是所有东西:图片、文本、电话、链接等等
                    width:300,     //生成二维码的宽度
                    height:300,     //生成二维码的高度
                    colorDark:'#333333',   // 二维码颜色
                    colorLight:'#eeefff',  //二维码背景颜色
                    // correctLevel:QRCode.correctLevel.L,   //容错率 ,L/M/H
                }),
1

重点部分2:

            html2canvas(this.$refs.qrCodeDiv, {
                backgroundColor: null,
                width: 300,
                height: 300
            }).then(canvas => {
                var imgData = canvas.toDataURL('image/jpeg')  //这里转为图片方式 `[base64转图片并显示](https://blog.csdn.net/weixin_45527702/article/details/117324946)`
                console.log(typeof(imgData))
                console.log("imgData")
                this.imgData = imgData   //this.imgData是需要自己在data中定义,进而来接参
            })

整体代码:

//`template中写`
        <div id="qrcode">
            <div id="qroode" class="qrconde" ref="qrCodeDiv" v-if="imageDta == ''"></div>
        </div>
//`data中定义`
        this.imgData : "",
//`style中设置css`
        #qroode{ width: 300px; height: 300px; margin: auto; }
//`script中导入包` -------`在需要的页面直接导入即可`
        import QRcode from "qrcodejs2"
        import html2canvas from "html2canvas"

//`methods中定义函数`
        get_qrcode(){   //生成工点二维码  及验证密码   --- 前端
            if(this.project.org_type === 5) {   //附加条件:什么条件下生成二维码
                new QRCode(this.$refs.qrCodeDiv,{
                    text:"http://19*.16*.12*.2*:8080/#/login?" + this.work_point.id, 
                    //text为转换为二维码的文本,可以是所有东西:图片、文本、电话、链接等等

                    width:300,   //生成二维码的宽度
                    height:300,   //生成二维码的高度
                    colorDark:'#333333',   // 二维码颜色
                    colorLight:'#eeefff',  //二维码背景颜色
                    // correctLevel:QRCode.correctLevel.L,   //容错率 ,L/M/H
                }),
                this.createPicture()    //转换图片
            }else{
                this.$notify({
                    title:"温馨提示",
                    type:"warning",
                    message:this.$createElement("i",{style:"color:orange"},"请选择工点"),
                })
            }
        },
        createPicture(){  //二维码转为图片    ---前端
            html2canvas(this.$refs.qrCodeDiv, {     //设置图片的背景颜色、宽度、高度
                backgroundColor: null,
                width: 300,
                height: 300
            }).then(canvas => {
                var imgData = canvas.toDataURL('image/jpeg')  //这里转为图片方式
                console.log(typeof(imgData))
                console.log("imgData")
                this.imgData = imgData
            })
        },
        clear_qrcode(){  //清除二维码 ---前端
            const codehtml = document.getElementById("qrcode");
            codehtml.innerHTML = ""
        },

————————————————
版权声明:本文为CSDN博主「~牧马~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45527702/article/details/117328521

 

标签:vue,300,前端,生成,二维码,imgData,图片
From: https://www.cnblogs.com/webSnow/p/17358151.html

相关文章

  • 无界微前端方案官方示例,main-vue 项目打包之后 访问index.html页面空包,控制台报资源错
    报错信息: 修改方案: publicPath:“./”修改为如上配置即可。......
  • 前端跨域解决方案——CORS
    CORS(跨来源资源共享)是一种用于解决跨域问题的方案。CORS(跨来源资源共享)是一种安全机制,用于在浏览器和服务器之间传递数据时,限制来自不同域名的请求。在前端开发中,当通过XMLHttpRequest(XHR)或FetchAPI发送跨域请求时,如果服务器没有正确配置CORS,浏览器会阻止该请求,从而导致请求......
  • 前端隐藏和显示div的方式js和beetle:
    方式一:设置元素style对象中的display属性1、vart=document.getElementById('demo');//选取id为test的div元素2、t.style.display='none';//隐藏选择的元素3、t.style.display='block';//以块级样式显示方式二:设置元素style对象中的visibility属性1、vart=documen......
  • VueRouter
    相关理解vue-router理解vue的一个插件库,专门用来实现SPA应用。对SPA应用的理解单个Web应用(singlepagewebapplication,SPA)。整个应用只有一个完整的页面。点击页面中的导航链接不会刷新页面,只会做页面的局部更新。数据需要通过ajax请求获取。路由的理解什么是路......
  • Vue3中ref和reactive的对比
     先说ref()和reactive()Vue3这两个API作用是相似的,只不过ref()是针对变量的响应式包装,而reactive()是针对对象的响应式包装。 ref()和reactive()对比API说明目标ref()传入一个值,返回一个响应式的变量变量reactive()返回一个对象的响应式代理。通过Proxy包......
  • 5.VueX
    5.VueX5.1.简介5.1.1.介绍概念以及作用:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。使用场景:多个组件依赖于同一状态来自不同组件的行为需要变更同一状态5.1.2......
  • [7625] 导读 一文看懂 Vue.j 3.0 的优化
    我们的课程是要解读Vue.js框架的源码,所以在进入课程之前我们先来了解一下Vue.js框架演进的过程,也就是Vue.js3.0主要做了哪些优化。Vue.js从1.x到2.0版本,最大的升级就是引入了虚拟DOM的概念,它为后续做服务端渲染以及跨端框架Weex提供了基础。Vue.js2.x发展了很......
  • Vue3 Hooks 的基础用法
    前言Vue3在API设计上引入了类似于ReactHooks的CompositionAPI,可以更方便地实现逻辑的复用和组合。本文将介绍Vue3Hooks的基础用法。基本使用Vue3Hooks中最简单的Hook就是setup。它是一个在组件创建时执行的函数,可以访问组件实例中的属性和方法,同时可以返回一......
  • qiankun vue子应用升级webpack5问题记录
    升级的方式是使用最新版本的vue-cli脚手架,重新创建一个新项目,然后复制@vue/cli-xxx,vue相关依赖最新版本到子应用项目->核对babel,eslint相关配置的变化->重新安装依赖,处理出现的相各种异常情况->启动项目检查功能是否正常。本次升级主要是为了使用webpack5。以下......
  • vue-router3.x和vue-router4.x相互影响的问题记录
    背景项目中有一个系统使用的微前端,主站使用是vue2实现的,使用的是vue-router3.x。子应用有使用vue3实现的,使用的为vue-router4.x。该子应用中的页面A有通过操作按钮触发跳转到其他子应用页面B的需求,此时使用的是vue-router4.x的编程式导航API。当通过点击主站的Tab切换回B的时候......