Skip to content

QRCode 二维码

用于生成二维码,支持自定义颜色、Logo、渐变、背景图以及导出图片。

使用注意

  • 组件基于 Canvas 渲染,logobackground-image 的加载能力受当前平台图片能力影响。
  • 远程图片通常需要平台已允许下载或能被 getImageInfo 正常解析。

基础用法

基础二维码

设置 text 属性为二维码内容。

html
<wd-qr-code text="https://wot-ui.cn" />

自定义尺寸

通过 size 调整二维码尺寸,单位为 px

html
<wd-qr-code text="https://wot-ui.cn" :size="280" />

自定义颜色

通过 color-darkcolor-light 分别设置深色与浅色区域颜色。

html
<wd-qr-code text="https://wot-ui.cn" color-dark="#3c9cff" color-light="#f2f7ff" />

样式能力

设置 logo 可在二维码中心绘制 Logo。

html
<wd-qr-code text="https://wot-ui.cn" logo="https://wot-ui.cn/assets/black_mao_square.png" />

Logo 样式

通过 logo-widthlogo-heightlogo-radiuslogo-border-colorlogo-border-width 调整 Logo 展示。

html
<wd-qr-code
  text="https://wot-ui.cn"
  logo="https://wot-ui.cn/assets/black_mao_square.png"
  :logo-width="52"
  :logo-height="52"
  :logo-radius="12"
  logo-background-color="#ffffff"
  logo-border-color="#ffffff"
  :logo-border-width="4"
/>

码点样式

通过 dot-type 可以切换方块、圆点、圆角和液态码点,并使用 dot-scale 调整缩放比例。

html
<wd-qr-code text="https://wot-ui.cn" dot-type="dots" :dot-scale="0.9" />
<wd-qr-code text="https://wot-ui.cn" dot-type="rounded" />
<wd-qr-code text="https://wot-ui.cn" dot-type="liquid" />

特殊样式

渐变颜色

开启 enable-gradient 后,可通过 gradient-colorgradient-colors 配置渐变色。

html
<wd-qr-code
  text="https://wot-ui.cn"
  enable-gradient
  :gradient-direction="45"
  :gradient-colors="['#4f46e5', '#06b6d4', '#10b981']"
/>

背景图片

通过 background-image 设置二维码底图。

html
<wd-qr-code
  text="https://wot-ui.cn"
  background-image="https://img.yzcdn.cn/vant/apple-1.jpg"
  logo="https://wot-ui.cn/assets/black_mao_square.png"
/>

方法

导出图片

通过组件实例调用 exportImage 导出二维码图片,返回临时文件路径。

html
<wd-qr-code ref="qrCodeRef" text="https://wot-ui.cn" />
<wd-button @click="handleExport">导出二维码</wd-button>
ts
import { ref } from 'vue'
import type { QrCodeInstance } from '@/uni_modules/wot-ui/components/wd-qr-code/types'

const qrCodeRef = ref<QrCodeInstance>()

async function handleExport() {
  const tempFilePath = await qrCodeRef.value?.exportImage()
  console.log(tempFilePath)
}

QRCode Attributes

参数说明类型默认值
text二维码内容string''
size二维码大小,单位为 pxnumber200
correct-level纠错级别,可选值为 LMQH'L' | 'M' | 'Q' | 'H''H'
color-dark二维码深色区域颜色string'#000000'
color-light二维码浅色区域颜色string'#FFFFFF'
margin二维码外边距,单位为 pxnumber0
logoLogo 图片地址string''
logo-widthLogo 宽度,单位为 pxnumber70
logo-heightLogo 高度,单位为 pxnumber70
logo-background-colorLogo 背景色string'#FFFFFF'
logo-radiusLogo 圆角,单位为 pxnumber0
logo-border-colorLogo 边框颜色string''
logo-border-widthLogo 边框宽度,单位为 pxnumber0
dot-type码点类型,可选值为 squaredotsroundedliquid'square' | 'dots' | 'rounded' | 'liquid''square'
dot-scale码点缩放比例number1
enable-gradient是否启用渐变booleanfalse
gradient-color渐变结束色string'#000000'
gradient-colors多色渐变颜色数组string[][]
gradient-direction渐变方向,可选值为 diagonalhorizontalvertical 或角度数值'diagonal' | 'horizontal' | 'vertical' | number'diagonal'
background-image背景图片地址string''
canvas-idCanvas ID,不传时自动生成string''
custom-class自定义根节点样式类string''
custom-style自定义根节点样式string''

QRCode Events

事件名称说明回调参数
click点击组件时触发event: Event
error绘制或导出过程出错时触发error: unknown

QRCode Methods

方法名称说明参数返回值
exportImage导出二维码图片-Promise<string>

源代码

文档
组件

Released under the MIT License.

Released under the MIT License.