分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

vue url生产二维码

发布时间:2023-09-06 02:24责任编辑:林大明关键词:url二维码
<template> ???<div id="QRcode"> ??????<div class=‘QR-qrcode‘ style=‘display:none;‘></div> ???</div></template><script> ???import QRCode from ‘qrcode-js-package‘ ???export default { ???????data () { ???????????return { ???????????} ???????}, ???????props: { ???????????size: { ???????????????type: Number, ???????????????default: 180, ???????????}, ???????????value: { ???????????????type: String, ???????????????default: ‘‘, ???????????}, ???????}, ???????watch:{ ???????????"$parent.qrText"(newVal){ ???????????????this.getQRcodeImg((base64)=>{ ???????????????????document.getElementsByClassName("QR-download")[0].href = base64 ; ???????????????}); ???????????}, ???????}, ???????methods: { ???????????concatCanvas(dom,canvas1,padding){ ???????????????/** ????????????????* @param {Number} padding 图片的padding,默认20 ????????????????* @return {String} 返回base64字符串 ????????????????* ????????????????*/ ???????????????var c1h = canvas1.height, ???????????????????c1w = canvas1.width, ???????????????????context=‘‘, ???????????????????canvas = document.createElement("canvas"); ???????????????padding = padding || 20 ; ???????????????canvas.height = c1h + 2.5 * padding ; ???????????????canvas.width = c1w + 2 * padding ; ???????????????/** end **/ ???????????????dom.appendChild(canvas); ???????????????/** 将canvas画上白色背景 **/ ???????????????context = canvas.getContext("2d"); ???????????????context.fillStyle ="white"; ???????????????context.fillRect(0,0,canvas.width,canvas.height); ???????????????/** end **/ ???????????????context.drawImage(canvas1, padding, padding, c1w ,c1h); ???????????????/** end **/ ???????????????/** 返回base64,用于注入到a标签里以便下载 **/ ???????????????return canvas.toDataURL(‘image/jpeg‘,1); ???????????????/** end **/ ???????????}, ???????????getQRcodeImg(fn,s){ ???????????????let url = s||this.value, ???????????????????size = this.size, ???????????????????dom = document.getElementById("QRcode"), ???????????????????$qrcode = dom.getElementsByClassName("QR-qrcode")[0], ???????????????????$main = dom.getElementsByClassName("QR-main")[0]; ???????????????new QRCode($qrcode, { ???????????????????text: url, ???????????????????width: size, ???????????????????height: size, ???????????????????correctLevel : QRCode.CorrectLevel.H ???????????????}); ???????????????let base64 = this.concatCanvas(dom,$qrcode.getElementsByTagName("canvas")[0],15); ???????????????fn && fn(base64); ???????????} ???????}, ???}</script>

结果:

vue url生产二维码

原文地址:https://www.cnblogs.com/web-fusheng/p/10050718.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved