laoyang
6a5d351e79
首页联系人:修头像显示 + 排除自己 (#88)
用户:首页联系人,需要带头像,排除自己。
① 头像(真 bug:从来没显示出来过)
改前 Image(p.avatar) —— 而 p.avatar 存的是**存储键**(avatars/xxx.jpg),
不是能喂给 Image() 的地址。Image("avatars/xxx.jpg") 被当成相对沙箱路径,
静默失败 ⇒ 永远只剩首字色块,看起来像"这个功能没做"。
正确出口项目里早就有:fbImageSrc(key, token)(先查本地解密缓存,
没缓存才拼 media.php?k=&token=)。名册页/观影卡都这么写,唯独首页这处漏了。
⇒ 改用 FbAvatar({ name, color, dia, imageUrl }):
· 底色+首字常驻,图片成功才盖上去 —— 名册绝大多数人没头像,必须回落;
· 有 key 但图坏了(OSS 文件缺失/token 过期)时 Image 是纯空白,
FbAvatar 会露出下面的首字,不会变成一块空光板。
personInitial() 因此成了死代码,删掉(FbAvatar 内部按 name 取首字)。
② 排除自己
FbPersonRepo.list() 返回整个名册(含"我"),自己占掉一个最显眼的位置
(一屏只露 6 个,3 列 × 2 行)。
- 用 session.me.id 判,不用名字/昵称比(重名、改名会漏);
- 取不到 id(0)时不剔任何人 —— 宁可多显示一个,
也不要因空 id 把列表清空(本项目踩过判断写反 ⇒ 列表恒空的坑);
- pfTotal 用剔除后的数量:它渲染成标题「N 人」,
用原始总数会写 800 人却只列 799 个,看着像丢人。
验证(真机 5NC0225B27004718):
- 标题 800 人 → 799 人;6 格从「爸爸/妈妈/岳父/杨永全/红围脖/轻舟」
变成「爸爸/妈妈/岳父/岳母/红围脖/轻舟」,即自己消失、后面依次前移;
- 底部说明同步为「共 799 人」;
- 6 个头像逐格取样(圆心 ±25px):色数 223~2162、主色占比 0.00~0.40,
全部是多色真实图像(纯色首字头会是主色占比>0.75、色数<50)。
hvigorw assembleHap BUILD SUCCESSFUL。
2026-11-06 11:40:26 +08:00
..
2026-11-06 11:40:26 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00