管理端批次/袋码/托盘页面的「查看二维码」弹窗,二维码预览此前直接用**码值编号**(如 PB-00000102、BAG-00000102)生成,而打印/导出标签的二维码内容是 H5 溯源链接(http://host:port/trace.html?code=xxx)。两者不一致,导致扫码效果不同,易造成误解。
本次改动让管理端「查看二维码」预览/下载的二维码内容与打印标签完全一致(均为 H5 链接)。
以上三处共用组件 src/views/mes/pro/components/qr-trace-modal.vue,仅需改动该共享组件一次。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /admin-api/mes/trace-config/qr-config | 获得溯源 H5 页面基础地址(二维码内容前缀) |
请求参数: 无(登录态即可访问)
响应示例:
{
"code": 0,
"data": {
"traceBaseUrl": "http://192.168.0.10:48080/trace.html"
},
"msg": ""
}
字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| traceBaseUrl | String | 溯源 H5 页面基础地址,对应后端配置 mes.trace-base-url;为空时前端二维码回退为纯码值 |
新增 src/api/mes/trace/config.ts,封装 getQrConfig() 调用 /mes/trace-config/qr-config。
traceBaseUrl(会话内缓存,避免重复请求)。traceBaseUrl + "?code=" + encodeURIComponent(码值)。QrCodeImageUtils 导出的标签一致。code 参数再进行追溯查询;直接输入码值编号同样可用。traceBaseUrl 为空(未配置 mes.trace-base-url 的环境)时,二维码回退为纯码值,行为与后端一致,不报错。code(正式批次号)优先、其次 tempCode;袋码/托盘码同理。弹窗内展示的追溯信息仍按码值编号查询,二维码展示内容才拼接为 H5 链接。/mes/trace-config/qr-config;重启前前端调用返回 404,traceBaseUrl 为空,二维码仍显示纯码值(降级可用,不影响原有反查功能)。mes.trace-base-url 配置强相关,不同环境(local/test/生产)地址不同,前端不硬编码。