refactor(client): Phase 1 照原型重建 app 外壳(顶栏两级品牌 + 主题器 + 通知铃 + 分组侧栏 + 状态栏)
照 shell.js/statusbar.js/atoms.css 把外壳从「旧单品牌+换色」彻底重建为原型样式: - 顶栏:岩美酒库(线描山形 mark CustomPaint,软件品牌) │分隔│ 鼎晟酒行(门店字标+店名); 右侧 ThemePickerPill(主题器,从系统设置迁来,A/B/C 切换) + NotificationBell(通知) - 侧栏(218w):分组 单据/经营/系统(nav-label) + nav(active 高亮) + 底部 side-user(头像/姓名/店·角色→菜单) - 状态栏:AppStatusBar(原型 .statusbar,AppChrome 主题无关色):店号/操作员/登录/当前(走字) · 连接/版本/授权 - 保留全部既有行为:更新/强制更新/授权横幅与弹窗、离线横幅、心跳、apiMessage、窄屏 Drawer - 新增 widgets/theme_picker_pill.dart · notification_bell.dart · app_status_bar.dart - golden:加载真实 MaterialIcons 字体(消图标豆腐块,全 golden 受益); app_shell golden 用 9 分支+冻结时钟(可测试缝)确定化,对齐原型数据(鼎晟酒行/王经理/库存激活) - fidelity:外壳 vs 原型 diff 3.5% ≤ 阈,montage 目检 chrome 与原型一致 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
This commit is contained in:
@@ -12,6 +12,17 @@ Future<void> ensureGoldenFonts() async {
|
||||
final loader = FontLoader('NotoSansSC')
|
||||
..addFont(rootBundle.load('assets/fonts/NotoSansSC.ttf'));
|
||||
await loader.load();
|
||||
// 真实 Material 图标字体(否则 golden 里图标渲染成豆腐块 □)。
|
||||
for (final key in const [
|
||||
'fonts/MaterialIcons-Regular.otf',
|
||||
'packages/flutter/fonts/MaterialIcons-Regular.otf',
|
||||
]) {
|
||||
try {
|
||||
final f = FontLoader('MaterialIcons')..addFont(rootBundle.load(key));
|
||||
await f.load();
|
||||
break;
|
||||
} catch (_) {/* 换下一个 asset key */}
|
||||
}
|
||||
_fontsLoaded = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user