Element UI Vue页面生成二维码的方法

9,212次阅读
没有评论

共计 3946 个字符,预计需要花费 10 分钟才能阅读完成。

目录

  • 一、方法一 采用 qrcodejs2 生成
    • 1.1、安装二维码插件 qrcodejs2
    • 1.2、在 vue 文件中,引入生成二维码插件
    • 1.3、构建二维码对象 qrCodeDiv
  • 一、方法二 - 采用 qrcode 生成
    • 2.1、安装 qrcode
    • 2.2、页面引入
    • 2.3、方法里边使用
    • 2.4、options
  • 三、方法三 vue-qr
    • 3.1、安装
    • 3.2、页面引入
    • 3.3、组件增加 vue-qr
    • 3.4、template 使用
    • 3.5、options

一、方法一 采用 qrcodejs2 生成

1.1、安装二维码插件 qrcodejs2

// 在终端输入 npm 命令,安装二维码插件

npm install qrcodejs2 --save

1.2、在 vue 文件中,引入生成二维码插件

import QRCode from 'qrcodejs2';        // 在 vue 文件中,引入生成二维码插件

1.3、构建二维码对象 qrCodeDiv

全部代码


    el-dialog
      title=" 微信扫码绑定用户 "
      :visible.sync="isShowCard"
      width="400px"
      center
      :before-close="jieBangClose"
    >
      
      div style="display: flex; justify-content: center">
        
        div id="qrCode" ref="qrCodeDiv">div>
      div>
    el-dialog>
 
// 1. 方法调用 
bangding(row){
      let memberId = row.memberId;
      this.isShowCard = true;
      if(this.ids != null){memberId = this.ids[0];
      }
      this.createQRCode(memberId);
}
//2. 具体的绑定方法
createQRCode(id){this.$nextTick(()=>{
      this.$refs.qrCodeDiv.innerHTML = '';// 二维码清除
      alert(id)
      new QRCode(this.$refs.qrCodeDiv, {
          text: "id="+ id,// 二维码链接,参数是否添加看需求
          width: 200,// 二维码宽度
          height: 200,// 二维码高度
          colorDark: "#333333", // 二维码颜色
          colorLight: "#ffffff", // 二维码背景色
          correctLevel: QRCode.CorrectLevel.L // 容错率,L/M/H
        });
      })
    }

一、方法二 - 采用 qrcode 生成

2.1、安装 qrcode

yarn add qrcode

2.2、页面引入

import QRCode from 'qrcode';

2.3、方法里边使用

getQRCodeUrl(){  
 QRCode.toDataURL(
 'hello world',{
 color: {
 dark:"#010599FF",
 light:"#FFBF60FF"
           }
         }
      )
       .then((url) => {
 // 获取到 url 后即可在页面使用 -- 二维码图片
 console.log('url', url)
       })
       .catch((e) => {console.log('e', e)
       });
 }

2.4、options

名称 类型 默认值 说明
errorCorrectionLevel String M 错误处理级别。可选值:low, medium, quartile, high or L, M, Q, H
maskPattern Number 可选值:0, 1, 2, 3, 4, 5, 6, 7
margin Number 4
scale Number 4
width Number
color.dark String #000000ff
color.light String #ffffffff

三、方法三 vue-qr

3.1、安装

yarn add vue-qr

3.2、页面引入

import VueQr from 'vue-qr'

3.3、组件增加 vue-qr

components: { 
	VueQr 
},

3.4、template 使用

logoSrc 中间 logo

vue-qr style="width:200px;height:200px;" logoSrc="https://www.qianduange.cn/upload/article/NoSlightly.png" text="Hello world!" :size="200">/vue-qr>

3.5、options

Parameter Explanation
text Contents to encode. 欲编码的内容
correctLevel Correct Level 0-3 容错级别 0-3
size Width as well as the height of the output QR code, includes margin. 尺寸, 长宽一致, 包含外边距
margin Margin to add around the QR code, default 20px. 二维码图像的外边距, 默认 20px
colorDark Color of“true”blocks. Works only when both colorDark and colorLight are set. (BYTE_DTA, BYTE_POS, BYTE_AGN, BYTE_TMG) 实点的颜色
colorLight Color of empty space, or“false”blocks. Works only when both colorDark and colorLight are set. (BYTE_EPT) 空白区的颜色
components Controls the appearances of parts in the QR code. Read section ComponentOptions to learn more. 阅读 ComponentOptions 了解更多信息
bgSrc Background url to embed in the QR code. 欲嵌入的背景图地址
gifBgSrc Gif background url to embed in the QR code, If gifBackground is set, backgroundImage will be ignored. This option will affects performance. 欲嵌入的背景图 gif 地址, 设置后普通的背景图将失效。设置此选项会影响性能
backgroundColor Background color 背景色
backgroundDimming Color mask to add above the background image. Helpful when having problems with decoding. 叠加在背景图上的颜色, 在解码有难度的时有一定帮助
logoSrc Logo url to embed at the center of generated QR code 嵌入至二维码中心的 LOGO 地址
logoScale Value used to scale the logo image. Larger value may result in decode failure. Size of the logo equals to logoScale*(size-2margin). Default is 0.2. 用于计算 LOGO 大小的值, 过大将导致解码失败, LOGO 尺寸计算公式 logoScale(size-2*margin), 默认 0.2
logoMargin White margin that appears around the logo image. Default is 0. LOGO 标识周围的空白边框, 默认为 0
logoBackgroundColor Logo background color, need set logo margin. Logo 背景色, 需要设置 logo margin
logoCornerRadius Radius of the logo’s corners.Default is 0 LOGO 标识及其边框的圆角半径, 默认为 0
whiteMargin If set to true, a white border will appear around the background image. Default is true. 若设为 true, 背景图外将绘制白色边框
dotScale Value used to scale down the data dots’size. (0
autoColor If set to true, the dominant color of backgroundImage will be used as colorDark. Default is true. 若为 true, 背景图的主要颜色将作为实点的颜色, 即 colorDark, 默认 true
binarize If set to true, the whole image will be binarized with the given threshold, or default threshold if not specified. Default is false. 若为 true, 图像将被二值化处理, 未指定阈值则使用默认值
binarizeThreshold Threshold used to binarize the whole image. Default is 128. (0
callback Data URI of the generated QR code will be available here. 生成的二维码 Data URI 可以在回调中取得, 第一个参数为二维码 data URL, 第二个参数为 props 传过来的 qid(因为二维码生成是异步的, 所以加个 id 用于排序)
bindElement If set to true, the generated QR will bind to a HTML element automatically. Default is true. 指定是否需要自动将生成的二维码绑定到 HTML 上, 默认是 true

原文地址: Element UI Vue 页面生成二维码的方法

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计3946字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)