Files
FamilyBook_harmonyos/entry
laoyang 5f8de01033 修:点已有纪念日编辑时关联人一片空白 (#91b)
用户 2026-11-05:「刚才关联人还有1人呢,现在关联人怎么没了?是个空的。」

真根因(两层,缺一个都不会有这现象):

① `dayRoster` 只在 `openDayCreate()`(**新建**入口)里加载
   `openDayDetail()`(**点已有纪念日**)从不加载它 ⇒ roster 恒为空数组
   ⇒ 编辑框里按 id 查不到人。
   ⇒ 抽出 `ensureDayRoster()`,两个入口都调。
     `openDayDetail` 里**不 await**:先让卡片弹出来(点击要即时反馈),
     名册回来后 `@Param` 变化会自动重画 chips。

② `pickedPeople()` 是"查不到就 skip"
   roster 为空时返回 `[]` ⇒ chips 区什么都不画 ⇒ 看着像关联关系被清空了。
   而这数据其实一直在 `personIds` 里,保存也不会丢 ——
   典型的"查不到就静默丢弃",最吓人的那种:数据没坏,但界面像是坏了。
   ⇒ 新增 `pickedSlots()`:roster 里查不到**也产出占位项**
     (名字写「成员 #id」、known=false、灰色字),至少让人看到"关联了一个人"。
   ⇒ 判断分支改看 `personIds.length`(**事实**),
     而不是 `pickedPeople()`(可能因 roster 没到而为空)。

顺手删掉 `pickedPeople()`(改成 slots 后没人用了,712 字符)。

⚠️ 派生(生日)走只读卡不需要名册,但 `openDayDetail` 统一加载也无害
   (`ensureDayRoster` 有缓存判断,第二次直接返回)。

编译通过,已装真机。
2026-11-05 20:53:53 +08:00
..