Skip to content

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 为库直接依赖,无需额外安装。

type="qr" 生成二维码;value 支持任意文本(URL / 纯文本 / JSON 凭证)。

收款码金额联动 ​

云端咖啡 · 滨江店门店编号 MCH-8821
请使用手机扫一扫付款
收款金额(元)
¥ 66.00
金额变化时二维码自动重绘(watch 深度联动)
收银台卡片:金额 + 门店信息组合,金额变化时二维码自动重绘(props 深度 watch)。

扫码登录 ​

二维码 5 分钟内有效,过期自动刷新
使用手机 App 扫码登录
等待扫码
token 二维码 + 轮询确认状态(业务侧对接 WebSocket / 轮询接口)。

电子凭证批量生成 ​

TK-0001
张三 · A区 3 排 12 号
TK-0002
李四 · A区 3 排 13 号
TK-0003
王五 · B区 1 排 05 号
入场券多码网格逐条渲染,内容为凭证字符串,margin 收窄静区适配小尺寸卡片。

二维码样式实验 ​

品牌蓝 · 级别 M · 静区 2
浅底深码 · 级别 H(贴标遮挡容错)
深底亮码 · 级别 Q · 大静区 4
无静区紧凑 · 级别 L(大容量场景)
dark / light 前后景、level 纠错级别(H 可支撑贴标遮挡 / 覆盖 logo)、margin 静区宽度对比。
logo 自动白衬底等比裁切;加载失败自动降级为无 logo;建议 level='H'(30% 纠错)保证可扫
logo 中心图(url / dataURL)+ logo-size 占比(钳制 0.05~0.3):白衬底等比裁切,加载失败自动降级;建议 level='H'。

圆点码点风格 ​

qr-style="dots":数据点圆点、三个定位区圆角方块——品牌物料、海报美化场景。

下载 PNG 与 dataURL 导出 ​

内容为 JSON 凭证:点击「下载 PNG」保存为 order-so20260928001.png;亦可 expose toDataURL({ scale: 3 }) 取 3 倍清晰度图片嵌入打印模板。

show-download 内置下载按钮、file-name 指定文件名;expose toDataURL({ scale }) 可取多倍清晰度图片嵌入打印模板。

条形码基础 ​

资产编号

ZC-2026-0001

库位编号(空格 / 小写自动转大写)

WL-8899-US EAST

type="barcode" 走 Code39 通道: 支持数字 / 大写字母 / - . 空格 $ / + %,小写自动转大写,字符集外字符自动过滤。

type="barcode" Code39 编码渲染(数字 / 大写字母 / - . 空格 $ / + %,小写自动转大写,字符集外字符自动过滤)。

Code128 基础 ​

Asset-sn2026x1
Code128:支持小写与全部可打印 ASCII;连续数字 ≥4 位自动按 Code C 成对编码(宽度减半);mod103 校验为规范必选(自动附加)
standard="code128":全 ASCII(含小写);连续数字 ≥4 位自动切 Code C 成对编码(宽度约减半);mod103 校验为规范必选(自动附加)。

Code39 vs Code128 对比 ​

Code39(大写字母数字,校验位可选)
SN-2026-0518
Code128(更密,含小写全 ASCII)
SN-2026-0518
同一内容两标准渲染:Code39 仅大写字母数字、宽度更长;Code128 更密、支持小写——按扫码设备与内容特征选择。

批量资产标签(Code128) ​

工控机 #1
sn-2026-1000
交换机 #2
sn-2026-1007
UPS #3
sn-2026-1014
工控机 #4
sn-2026-1021
交换机 #5
sn-2026-1028
UPS #6
sn-2026-1035
小写序列号批量渲染 + download(filename) 逐个导出——固定资产标签批量制码场景。

资产标签 / 物流面单打印 ​

便携打印机 · 行政部
ZC-A-1001
ZC-A-1001
会议平板 65 寸 · 产品部
ZC-A-1002
ZC-A-1002
顺丰速运 · 杭州转运中心 · 面单
SF-7720-9931-88
SF-7720-9931-88
条码 + 文本排版(等宽数字编号),配合 BizPrintBar 直接打印,覆盖固定资产标签与快递面单场景。

mod43 校验位 ​

原文:WAYBILL-6789

WAYBILL-6789

附加校验位(末位为 mod43 字符)

WAYBILL-6789+

expose getValue() 返回净化后的码值(含校验位):—

checksum 附加 mod43 校验字符(物流面单防错);expose getValue() 返回净化后的码值(含校验位)。

动态内容实时切换 ​

GATE-01

受控 value / type 动态切换:扫码枪录入 → 生成 → 打印闭环;内容变化自动重绘并触发 rendered 事件(当前 为错误态,已兜底提示)。

受控 value / type 动态切换(扫码枪录入 → 生成 → 打印闭环);rendered / error 事件感知渲染结果。

Props ​

属性名类型默认值说明
type'qr' | 'barcode'—图码类型(必传):'qr' 二维码 / 'barcode' 条形码(编码标准经 standard 选择)
valuestring''编码内容:qr 通道为 URL / 文本 / JSON 凭证;barcode 通道为编码文本(Code39 小写自动转大写、字符集外过滤;Code128 支持 ASCII 32~126 全可见字符)
sizenumber200[qr] 边长(px,正方形)
marginnumber2[qr] 静区(白边)宽度(模块点数)
level'L' | 'M' | 'Q' | 'H''M'[qr] 纠错级别(7% / 15% / 25% / 30%)
darkstring'#000000'[qr] 前景色(支持 #RRGGBB / #RRGGBBAA)
lightstring'#FFFFFF'[qr] 背景色
qr-style'square' | 'dots''square'[qr] 码点风格:方块 / 圆点(定位区恒为圆角方块)
logostring—[qr] 中心 logo(url / dataURL),加载失败自动降级为无 logo
logo-sizenumber0.2[qr] logo 边长占比(钳制 0.05 ~ 0.3),建议配合 level='H'
show-downloadbooleanfalse展示「下载 PNG」按钮(qr / barcode 通道通用)
file-namestring'code'下载文件名(不含扩展名,download(filename?) 可单次覆盖)
standard'code39' | 'code128''code39'[barcode] 编码标准:Code39 大写字母数字 / Code128 全 ASCII 更密(mod103 校验必选)
checksumbooleanfalse[barcode][code39] 附加 mod43 校验位(code128 的 mod103 恒开启)
show-textbooleantrue[barcode] 显示下方可读文本
heightnumber60[barcode] 条高(px)
narrownumber2[barcode] 窄模块宽度(px,宽模块 = 窄 × ratio)
rationumber2.5[barcode] 宽窄比(钳制 2 ~ 3)
colorstring'#303133'[barcode] 条色
backgroundstring'transparent'[barcode] 背景色
font-sizenumber14[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 即模块宽。