Files
FamilyBook_harmonyos/entry
laoyang ac666dd7f4 编辑观影记录:修豆瓣联想乱弹与多字段回填,标题主题色、删副标题 (#83)
用户:编辑观影记录后片名下面列出好几个条目(豆瓣的?输入框变更后才该出现);
影院、同看的人、观影照片、简介、备注都没带进来;
编辑观影记录要用主题色;副标题那句删掉。

五个问题三种根因:

A. TextInput/TextArea 把回填当成用户输入
- 片名:prefill 改完 this.title,下次渲染的 TextInput 把新值当 onChange 回调
  ⇒ scheduleSuggest 弹出一排豆瓣候选。改为 onChange 里先比较 v !== this.title,
  值没真变就不调度;prefill 末尾兜底清联想态。
  (先试过 @Local prefilling 标记,没用——prefill 同步跑完标记立刻复位,
   而 onChange 是下一帧才回调的。)
- 简介/备注:areaField 是**值参数** Builder,TextArea({text:value}) 只拿首次
  调用的字面量。拆成 infoField/noteField 两个 Builder,内部直接读 this.info/note。

B. Row { 标签.width(100%); 内层Row } 把内容挤出可视区
- cinemaField/personField/photoField 三个字段都是这个结构,内层 Row 塌成 0 高、
  完全不渲染 ⇒ 看起来像没带进来,其实没画。全部改两排版式。
  (这是 #80 修 posterField 时漏掉的同一个坑,同文件另外三处没扫全。)
- 观影照片:照片区只渲染 photoUris(新选图),已有图在 editingDetail.photos 里
  从未渲染。新增 @Local existingPhotos,显示「已有 N 张(保存后保持不变)」。

C. 字段压根没从接口接上
- FbMovieDetail / FbApiMovieDetail 都没有 cinemaId/cinema_id,但服务端
  Movie::find() 的 SELECT 明确有 d.cinema_id。所以只能按影院名反查,
  重名会选错、改名会失败。补齐字段并解析,cinemaIdOf 改为优先用 id。

另外:FbSheetTitleBar 加 @Param titleColor(默认空=正文色,老调用点零影响),
观影编辑传 accentColor;编辑模式 subtitle 传空串,新建模式保留必填提示。

验证(真机):豆瓣候选无;影院「黄岛城市传媒广场 · 青岛东方影都艺术影城」;
同看人「已选 2 人:杨永全、红围脖」;简介输入框深色像素 2181(916 字全文);
备注 0(该记录 note 本来就是 NULL,SQL 已核实);照片「已有 4 张」;
标题 RGB(99,69,112)=观影模块色 #7A4E8C 派生;标题下方 50px 内无文本。
hvigorw assembleHap BUILD SUCCESSFUL。
2026-11-06 10:30:39 +08:00
..