QRCode 二维码

基本用法

```schema: scope=”body” { “type”: “qr-code”, “codeSize”: 128, “value”: “https://www.baidu.com“ }

  1. > 根据 QR 码国际标准,二进制模式最多可存储`2953`字节的内容(1 中文汉字=2 字节)
  2. ## 配置背景色
  3. 背景色默认为`#fff`(纯白色), `backgroundColor`属性可以修改背景色。
  4. ```schema: scope="body"
  5. [
  6. {
  7. "type": "qr-code",
  8. "codeSize": 128,
  9. "backgroundColor": "#108cee",
  10. "foregroundColor": "#000",
  11. "value": "https://www.baidu.com"
  12. }
  13. ]

配置前景色

前景色默认为#000(纯黑色), foregroundColor属性可以前景色。

```schema: scope=”body” [ { “type”: “qr-code”, “codeSize”: 128, “backgroundColor”: “#fff”, “foregroundColor”: “#108cee”, “value”: “https://www.baidu.com“ } ]

  1. ## 纠错等级
  2. `level`属性可以设置二维码的纠错等级,纠错等级分为四种(`'L' 'M' 'Q' 'H'`),从左到右依次提升,默认为`'L'`
  3. ```schema: scope="body"
  4. {
  5. "type": "hbox",
  6. "columns": [
  7. {
  8. "type": "qr-code",
  9. "codeSize": 128,
  10. "level": "L",
  11. "value": "https://www.baidu.com"
  12. },
  13. {
  14. "type": "qr-code",
  15. "codeSize": 128,
  16. "level": "M",
  17. "value": "https://www.baidu.com"
  18. },
  19. {
  20. "type": "qr-code",
  21. "codeSize": 128,
  22. "level": "Q",
  23. "value": "https://www.baidu.com"
  24. },
  25. {
  26. "type": "qr-code",
  27. "codeSize": 128,
  28. "level": "H",
  29. "value": "https://www.baidu.com"
  30. }
  31. ]
  32. }

嵌入图片

imageSettings属性可以设置二维码中嵌入的图片,src设置图片链接地址,图片大小默认为二维码大小的 10%,图片位置默认水平垂直居中。

1.10.0 及以上版本。 建议根据图片大小,调整二维码纠错等级,避免图片遮挡导致二维码无法被正确识别

```schema: scope=”body” { “type”: “qr-code”, “codeSize”: 128, “level”: “Q”, “value”: “https://www.baidu.com“, “imageSettings”: { “src”: “https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg“, } }

  1. ### 关联上下文变量
  2. ```schema: scope="body"
  3. {
  4. "type": "page",
  5. "data": {
  6. "imgSrc": "https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg"
  7. },
  8. "body": {
  9. "type": "qr-code",
  10. "codeSize": 128,
  11. "level": "Q",
  12. "value": "https://www.baidu.com",
  13. "imageSettings": {
  14. "width": 50,
  15. "height": 30,
  16. "src": "${imgSrc}"
  17. }
  18. }
  19. }

图片宽高

widthheight 可以设置图片的宽度和高度。

```schema: scope=”body” { “type”: “qr-code”, “codeSize”: 128, “level”: “Q”, “value”: “https://www.baidu.com“, “imageSettings”: { “src”: “https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg“, “width”: 50, “height”: 30 } }

  1. ### 图片偏移量
  2. 以二维码**左上角**为原点,`x``y`分别设置图片的水平偏移量和垂直偏移量。示例通过`codeSize`和图片的`width` `height` 计算出偏移量`{"x": 78, "y": 98}`,使图片位于右下角。
  3. ```schema: scope="body"
  4. {
  5. "type": "qr-code",
  6. "codeSize": 128,
  7. "level": "Q",
  8. "value": "https://www.baidu.com",
  9. "imageSettings": {
  10. "src": "https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg",
  11. "width": 50,
  12. "height": 30,
  13. "x": 78,
  14. "y": 98
  15. }
  16. }

挖孔嵌入

设置excavate: true,可以在二维码图片中挖孔,视觉上使图片和二维码处于同一图层。

```schema: scope=”body”

{ “type”: “hbox”, “columns”: [ { “type”: “qr-code”, “codeSize”: 128, “level”: “Q”, “value”: “https://www.baidu.com“, “imageSettings”: { “src”: “https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg“, “width”: “50”, “height”: “30”, “excavate”: false } }, { “type”: “qr-code”, “codeSize”: 128, “level”: “Q”, “value”: “https://www.baidu.com“, “imageSettings”: { “src”: “https://internal-amis-res.cdn.bcebos.com/images/2020-1/1578395692722/4f3cb4202335.jpeg@s_0,w_216,l_1,f_jpg“, “width”: “50”, “height”: “30”, “excavate”: true } } ] }

```

属性表

属性名 类型 默认值 说明
type string "qr-code" 指定为 QRCode 渲染器
className string 外层 Dom 的类名
qrcodeClassName string 二维码 SVG 的类名
codeSize number 128 二维码的宽高大小
backgroundColor string "#fff" 二维码背景色
foregroundColor string "#000" 二维码前景色
level string "L" 二维码复杂级别,有(’L’ ‘M’ ‘Q’ ‘H’)四种
value 模板 "https://www.baidu.com" 扫描二维码后显示的文本,如果要显示某个页面请输入完整 url("http://...""https://..."开头),支持使用 模板
imageSettings object QRCode 图片配置
imageSettings.src string 图片链接地址
imageSettings.width number 默认为codeSize的 10% 图片宽度
imageSettings.height number 默认为codeSize的 10% 图片高度
imageSettings.x number 默认水平居中 图片水平方向偏移量
imageSettings.y number 默认垂直居中 图片垂直方向偏移量
imageSettings.excavate boolean false 图片是否挖孔嵌入