条码组合 / 服务端成图 / 扫码解析 - 前端联调方案
涉及页面
- 条码配置管理页(
contentFormat 编辑)
- 标签打印 / 条码展示页(服务端成图预览)
- 扫码(PDA / 手机扫码枪)触发业务解析入口
业务流程与数据带入
- 条码配置 -> 内容生成:配置
contentFormat 支持组合占位符 {BUSINESSCODE}(业务编码)、{BUSINESSNAME}(业务名称)。前端传 bizType、bizCode、bizName 调生成接口,后端按配置模板替换占位符、清空未知占位符,返回最终条码内容。
- 服务端成图:前端把条码内容 + 格式(1 QRCode / 2 EAN-13 / 3 Code39 / 4 UPC-A / 默认 Code128)+ 宽高传给
POST /render,后端用 zxing 生成图片,返回 Base64 data-URL 供 <img> 直接预览(不持久化落库)。
- 扫码解析:前端把扫到的内容传给
POST /parse,后端先精确匹配条码表,再按启用配置的 contentFormat 反向正则匹配,返回命中的 bizType / bizCode / bizName,前端据此跳转对应业务单据。
API
| 方法 |
路径 |
说明 |
| GET |
/mes/wm/barcode/generate-content?bizType=&bizCode=&bizName= |
按配置生成条码内容 |
| POST |
/mes/wm/barcode/render |
服务端成图(返回 Base64 图片) |
| POST |
/mes/wm/barcode/parse |
扫码解析(返回业务字段) |
请求参数(render):
| 参数 |
类型 |
必填 |
说明 |
| content |
String |
是 |
条码内容(可由 generate-content 返回) |
| format |
Integer |
否 |
条码格式:1 QRCode / 2 EAN-13 / 3 Code39 / 4 UPC-A / 默认 Code128 |
| width |
Integer |
否 |
图片宽度(默认 200) |
| height |
Integer |
否 |
图片高度(默认 200) |
响应(render): { "code": 200, "data": "data:image/png;base64,..." }
请求参数(parse):
| 参数 |
类型 |
必填 |
说明 |
| content |
String |
是 |
扫描得到的条码内容 |
响应字段(parse):
| 字段 |
类型 |
说明 |
| bizType |
Integer |
命中的业务类型 |
| bizCode |
String |
命中的业务编码 |
| bizName |
String |
命中的业务名称 |
字段展示规则
| 字段 |
展示位置 |
说明 |
| contentFormat |
条码配置编辑页 |
支持 {BUSINESSCODE}、{BUSINESSNAME} 组合 |
| 条码图片 |
标签 / 列表 |
render 返回 Base64 直接 <img src> |
| 解析结果 |
扫码结果页 |
命中后展示业务编码并跳转 |
业务规则说明
| 场景 |
规则 |
| 生成内容 |
仅替换配置中存在的占位符;未配置的未知占位符会被清空 |
| 服务端成图 |
只做即时预览,不落库;正式附件仍走 system 存储附件机制 |
| 解析 |
优先精确匹配条码表;未命中再按启用配置 contentFormat 反向匹配;均未命中返回空 |
| 格式支持 |
二维码与一维码(EAN-13 / Code39 / UPC-A / Code128) |
注意事项
- 条码图片为 Base64 data-URL,适合即时预览;如需持久存储按「文件上传规则」走
/system/storage-*。
generate-content 需要存在对应的启用条码配置,否则返回原样或空。