Appearance
BizCode 图码生成
统一图码生成组件(合并自 BizQrCode 二维码与 BizBarcode 条形码,一套 API 覆盖一维 + 二维打印场景):type="qr" 走二维码通道,内容(URL / 文本 / JSON 凭证)经 qrcode 库渲染 canvas——尺寸、静区、纠错级别、前后景可配;type="barcode" 走 Code39 条形码通道,按规范代数推导编码、SVG 渲染,支持 mod43 校验位、条高 / 窄模块宽 / 宽窄比(2~3)、下方可读文本。两通道统一 download 下载 PNG 与 toDataURL 导出,渲染失败兜底提示不白屏。
适用于:支付收款码、分享链接、扫码登录、电子凭证 / 入场券、资产标签、物流面单、货位码。
依赖说明
qrcode 是组件库的直接依赖(gzip 约 10KB),随组件库自动安装,使用方无需额外操作;Code39 条形码为纯前端推导实现,无任何第三方依赖。
二维码基础
type="qr" 走二维码通道, value 支持任意文本:URL、纯文本、JSON 凭证均可;qrcode 为库直接依赖,无需额外安装。
收款码金额联动
云端咖啡 · 滨江店门店编号 MCH-8821请使用手机扫一扫付款
收款金额(元)
¥ 66.00
金额变化时二维码自动重绘(watch 深度联动)
扫码登录
二维码 5 分钟内有效,过期自动刷新
使用手机 App 扫码登录
等待扫码电子凭证批量生成
TK-0001
张三 · A区 3 排 12 号
TK-0002
李四 · A区 3 排 13 号
TK-0003
王五 · B区 1 排 05 号
二维码样式实验
品牌蓝 · 级别 M · 静区 2
浅底深码 · 级别 H(贴标遮挡容错)
深底亮码 · 级别 Q · 大静区 4
无静区紧凑 · 级别 L(大容量场景)
中心 logo
logo 自动白衬底等比裁切;加载失败自动降级为无 logo;建议 level='H'(30% 纠错)保证可扫
圆点码点风格
下载 PNG 与 dataURL 导出
内容为 JSON 凭证:点击「下载 PNG」保存为 order-so20260928001.png;亦可 expose toDataURL({ scale: 3 }) 取 3 倍清晰度图片嵌入打印模板。
条形码基础
资产编号
库位编号(空格 / 小写自动转大写)
type="barcode" 走 Code39 通道: 支持数字 / 大写字母 / - . 空格 $ / + %,小写自动转大写,字符集外字符自动过滤。
Code128 基础
Code128:支持小写与全部可打印 ASCII;连续数字 ≥4 位自动按 Code C 成对编码(宽度减半);mod103 校验为规范必选(自动附加)
Code39 vs Code128 对比
Code39(大写字母数字,校验位可选)
Code128(更密,含小写全 ASCII)
批量资产标签(Code128)
工控机 #1
交换机 #2
UPS #3
工控机 #4
交换机 #5
UPS #6
资产标签 / 物流面单打印
便携打印机 · 行政部ZC-A-1001
会议平板 65 寸 · 产品部ZC-A-1002
顺丰速运 · 杭州转运中心 · 面单SF-7720-9931-88
mod43 校验位
原文:WAYBILL-6789
附加校验位(末位为 mod43 字符)
expose getValue() 返回净化后的码值(含校验位):—
动态内容实时切换
受控 value / type 动态切换:扫码枪录入 → 生成 → 打印闭环;内容变化自动重绘并触发 rendered 事件(当前 为错误态,已兜底提示)。
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | 'qr' | 'barcode' | — | 图码类型(必传):'qr' 二维码 / 'barcode' 条形码(编码标准经 standard 选择) |
| value | string | '' | 编码内容:qr 通道为 URL / 文本 / JSON 凭证;barcode 通道为编码文本(Code39 小写自动转大写、字符集外过滤;Code128 支持 ASCII 32~126 全可见字符) |
| size | number | 200 | [qr] 边长(px,正方形) |
| margin | number | 2 | [qr] 静区(白边)宽度(模块点数) |
| level | 'L' | 'M' | 'Q' | 'H' | 'M' | [qr] 纠错级别(7% / 15% / 25% / 30%) |
| dark | string | '#000000' | [qr] 前景色(支持 #RRGGBB / #RRGGBBAA) |
| light | string | '#FFFFFF' | [qr] 背景色 |
| qr-style | 'square' | 'dots' | 'square' | [qr] 码点风格:方块 / 圆点(定位区恒为圆角方块) |
| logo | string | — | [qr] 中心 logo(url / dataURL),加载失败自动降级为无 logo |
| logo-size | number | 0.2 | [qr] logo 边长占比(钳制 0.05 ~ 0.3),建议配合 level='H' |
| show-download | boolean | false | 展示「下载 PNG」按钮(qr / barcode 通道通用) |
| file-name | string | 'code' | 下载文件名(不含扩展名,download(filename?) 可单次覆盖) |
| standard | 'code39' | 'code128' | 'code39' | [barcode] 编码标准:Code39 大写字母数字 / Code128 全 ASCII 更密(mod103 校验必选) |
| checksum | boolean | false | [barcode][code39] 附加 mod43 校验位(code128 的 mod103 恒开启) |
| show-text | boolean | true | [barcode] 显示下方可读文本 |
| height | number | 60 | [barcode] 条高(px) |
| narrow | number | 2 | [barcode] 窄模块宽度(px,宽模块 = 窄 × ratio) |
| ratio | number | 2.5 | [barcode] 宽窄比(钳制 2 ~ 3) |
| color | string | '#303133' | [barcode] 条色 |
| background | string | 'transparent' | [barcode] 背景色 |
| font-size | number | 14 | [barcode] 下方可读文本字号 |
两通道原属
BizQrCode/BizBarcode的属性名无任何命名冲突,合并后原名保留、无需前缀区分:二维码配色用dark/light,条形码配色用color/background;标注 [qr] / [barcode] 的属性仅在对应通道生效,通用属性两通道均可使用。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| rendered | (dataURL: string) | 渲染成功后触发,dataURL 为当前图码的 PNG dataURL |
| error | (err: Error) | 渲染失败时触发(内容为空、Code39 字符集不合法、二维码编码异常等),组件内已兜底提示不白屏 |
Slots
| 插槽名 | 说明 |
|---|---|
| — | 暂无插槽;根元素透传 $attrs(class / style / 原生事件),可自行包裹容器扩展排版 |
Expose
| 名称 | 类型 | 说明 |
|---|---|---|
| download | (filename?: string) => Promise<void> | 触发下载 PNG(filename 不含扩展名,缺省取 file-name 属性) |
| toDataURL | (options?: { scale?: number; background?: string }) => Promise<string | null> | 导出 PNG dataURL:qr 通道导出画布(scale 可放大重采样);barcode 通道离屏 canvas 绘制(scale 默认 2、background 默认白色) |
| refresh | () => Promise<void> | 强制重绘(qr 重新编码绘制,barcode 重建 SVG 并重新回调 rendered) |
| getValue | () => string | 当前生效码值:barcode 通道 Code39 为净化后内容(含校验位)、Code128 为原始 value;qr 通道为原始 value |
TIP
Code39 需左右各 10 倍窄模块静区(组件已内置);扫码枪识读建议 narrow ≥ 2 且 ratio ≥ 2.5。Code128 无宽窄比概念(条宽 1~4 模块自描述),密度更高,narrow 即模块宽。