feat(client): 标签模板编辑器 P2 · 编辑器屏+存储+打印联动(原型同提交)

设备管理「价签·编辑」进入独立编辑器屏 /devices/label-template:
- 左实时预览走真实 renderLabelPreview 渲染路径(示例数据, debounce 重渲)
- 右属性面板:多模板管理(编辑对象/打印默认分离)、显示字段手风琴、
  高级区域位置、打印参数
- 存 shop.custom_fields.label_templates + label_template_active(零后端改)
- Option A:同物理行两字段(编号+型号 / 版本+日期)共用字号·加粗·对齐,
  各自独立开关;仅品名支持自动字号;字体不做(热敏单色)
- 打印联动:LabelPreviewDialog 改 ConsumerStatefulWidget, 未显式传模板时
  自动取本店 active 模板→所有打印入口(商品详情/出入库列表/编辑抽屉)一致生效

守护:
- 默认输出逐像素零变化由 label_render_golden_test 守(改内置默认常量才触发)
- 存储读写由 label_template_storage_test 单测守(纯内存, 不触真实库)
- 编辑器挂载由 label_template_editor_smoke_test 守
- 本屏不入自动 fidelity/golden 闸(左预览 Picture.toImage 需 runAsync,
  pumpAndSettle 骨架驱动不了), 原因+替代守法记入 CONTRACT 块4

design-first:原型 label-template-editor.html 去字体选择器、加 Option A 配对
镜像, 与真实屏同提交。真机热敏打印坐标/条码可扫须用户在打印机验收。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bupi8Kdqkfx2N5acFsHTx5
This commit is contained in:
wangjia
2026-08-30 09:56:23 +08:00
parent 27c5f94329
commit 7b3a0ecdeb
9 changed files with 1244 additions and 49 deletions
+6
View File
@@ -20,6 +20,7 @@ import '../../screens/settings/settings_screen.dart';
import '../../screens/settings/users_screen.dart';
import '../../screens/about/about_screen.dart';
import '../../screens/devices/device_management_screen.dart';
import '../../screens/devices/label_template_editor_screen.dart';
import '../../screens/me/me_screen.dart';
import '../../screens/license/license_screen.dart';
import '../auth/auth_state.dart';
@@ -183,6 +184,11 @@ final appRouterProvider = Provider<GoRouter>((ref) {
path: '/devices',
pageBuilder: (_, __) =>
_noTransition(const DeviceManagementScreen())),
// 标签价签模板编辑器(照原型 label-template-editor.html
GoRoute(
path: '/devices/label-template',
pageBuilder: (_, __) =>
_noTransition(const LabelTemplateEditorScreen())),
]),
// 7 系统设置(面板:门店信息/用户管理/编号规则/偏好设置;
// 授权管理 2026-07-10 提升为独立一级屏,见 branch 10 `/license`