Commit Graph

2 Commits

Author SHA1 Message Date
wangjia 7dceefc55e feat(client): 价签默认模板品名默认展示 + 二维码放大留小边框
- 默认模板改为代码只读基准:readLabelTemplates 加载时强制用
  builtinDefault() 覆盖 builtin-default 项,忽略存储里的旧脏几何
  (旧默认品名被关/旧 QR 坐标等一律自愈回代码基准)
- 二维码放大 x198/y44/尺寸96 → x192/y32/尺寸120,四周留 ~1mm 小边框
- 原型 label-template-editor.html 高级 QR 输入同步;golden 重生
- 新增存储测试钉死「内置默认永远回代码基准」

原型与代码同提交(design-first 双边一致)
2026-08-31 12:07:22 +08:00
wangjia ced71bd8a1 refactor(client): P3 PDF/Web 价签收口为「贴画布位图」+ 抽出单源渲染器
将标签「画布位图」渲染逻辑(renderLabelImage / renderLabelPngBytes + 文字/条码/
字号自适应辅助)抽到平台无关的 label_bitmap.dart,四条路径共用同一套几何:
桌面预览、桌面热敏 TSPL 光栅、桌面 PDF 回退、Web 打印。

- print_util_stub.dart:PDF 回退(printProductLabelImpl)非热敏时不再手搭 pw.* 组件
  树(忽略模板坐标),改贴整幅 renderLabelImage 位图铺满 40×20mm 页;删除仅供旧
  PDF 树使用的 _navy/_cream/_footnote/_ink 常量与 barcode 包导入。
- print_util_web.dart:HTML flex 布局换成单张 <img> 画布 PNG;renderLabelPreviewImpl
  由返回 null 改为走共享渲染器(Web 预览与桌面同源)。
- 效果:同一模板在热敏/PDF/Web 观感 100% 一致。条码/二维码随位图光栅化,扫码风险
  只在 ≥300dpi 办公机路径(热敏 203dpi 仍走原生 TSPL BARCODE/BITMAP,不受影响)。

零回归:label_render_golden 逐像素通过(抽出保持字节等价);flutter analyze 0
error/warning、362 测试全绿、check_ds_code --strict 0 违规。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bupi8Kdqkfx2N5acFsHTx5
2026-08-30 14:43:34 +08:00