帮助中心三层结构(TAPD #1003305)的第二层:从 帮助中心(Level 1,设备型号选择)进入后,CM1/2/3 与 CM4 会按固定的 6 个主题渲染卡片列表,点击任一主题进入 帮助详情(Level 3,实际内容);CG1 则不渲染主题列表,而是显示本地化的“coming soon”占位内容。当前 6 个主题仅在 legacy / CM4 两个型号之间共享;CG1 当前不显示这 6 个主题,而是显示一个“coming soon”占位态,待其专属帮助内容完成后再接入。
lib/features/thermometer/presentation/pages/help_topics_page.dart(177 行)appLanguageProvider(决定 helpTopicTitles[locale] / helpTopicDescriptions[locale] 取哪一份翻译,缺失当前语言时回退英文 ['en'])lib/features/thermometer/presentation/data/help_content.dart(helpTopicTitles / helpTopicDescriptions Map)lib/features/thermometer/presentation/pages/help_models.dart(HelpDeviceModel { legacy, cm4, cg1 },displayName 是型号名,不本地化)HelpDeviceModel model(构造函数,决定标题栏显示哪个型号名;目前不影响 6 个主题本身的内容)Navigator.push(MaterialPageRoute(builder: (_) => HelpTopicsPage(model: m.model))),与 帮助详情 一样不进 app.dart 的 routes map,不能 deep-link。顶部返回 + 居中标题——显示的是所选设备型号名(model.displayName:CM1 / CM2 / CM3、CM4 或 CG1),不是"帮助中心"这类固定文案,让用户清楚自己在看哪个型号的帮助。下方内容会根据 model 分支:legacy / CM4 显示 6 张主题卡片(ListView.builder,itemCount: 6),每张卡片左侧固定图标、中间标题+描述、右侧 chevron;CG1 不显示主题卡片,而是显示 _ComingSoonPlaceholder(message: l.helpComingSoon) 占位态。6 个图标顺序写死为:蓝牙、餐具(cooking)、火焰、显示器、通知、工具——分别对应 BLE 配对、探针插入、烹饪设置、烹饪界面、温度提醒、连接故障排查这 6 个主题。
IconButton.onPressed → Navigator.pop(context) → 回到帮助中心的型号选择列表_TopicCard.onTapGestureDetector.onTap
→ Navigator.push(MaterialPageRoute(builder: (_) => HelpDetailPage(topicIndex: index)))
index(该主题在 6 项列表中的位置,0–5)作为 topicIndex 传给 帮助详情页;model 参数本身不会继续往下传——Level 3 不知道用户是从哪个型号进来的。watch:appLanguageProvider —— 用户切换语言后标题/描述立即重渲染。model 是构造参数,不会动态变。
无显著差异。
model 参数对 legacy / CM4 只影响标题栏文案,不影响 6 个主题本身的标题/描述/图标/内容;CG1 在 Level 2 不渲染主题列表,而是直接显示 _ComingSoonPlaceholder(message: l.helpComingSoon) 占位态,尚未接入专属主题集。_icons)与索引硬绑定,写死顺序:与 helpTopicTitles[<locale>] 列表的索引一一对应,靠位置而非 key 关联。新增/删除/重排主题需要同步改动多处:本页的 _icons 列表与 itemCount: 6、help_content.dart 的 helpTopicTitles / helpTopicDescriptions / helpTopicContent / helpTopicImageCounts / helpImageAfterParagraph,以及 帮助详情 页 help_detail_page.dart 的 _slotsFor——任何一处漏改都会导致图标、标题、正文错位。