v0.8.2 头像点进我的详情 / 未读数接真实数据 / 名册圆角卡(容器要换成页面底色)
用户 2026-10-18 夜三条: ①「右上角,显示的应该是登录者的头像,点击头像进入我的详情页面。」 头像**本来就是登录者本人的**(v59 已接 session.me.avatarUrl); 真正缺的是**点击** —— TopBar 里那个 FbAvatar **根本没有 onClick**, 只有一句写着"点开账号菜单"的注释,而"账号菜单"这个东西在代码里并不存在。 ⇒ 接 openMyDetail() → bindSheet 弹 FbPersonSheet(复用名册那个人详情组件)。 🔴 数据必须走 repo.byId(meId)(本次为它新增 byId),不能从名册列表那批里找: **"我"常常不在自己的名册里**(名册是"我挑出来的那一小撮"), 从列表里查会**静默落空**、点了没反应 —— 最难查的那种失败。 ⚠️ 三种状态都说清楚:加载中 / 拿到了 / 拿不到,绝不留空白浮层。 ②「提醒按钮,明明没提醒,怎么还显示个 2?」 🔴 真根因:`@Trace unread: number = 2;` 是**写死的占位初值**, 而全工程只有一处给它赋值(通知页「全部已读」清 0)。 没进过通知页的人**永远看到 2**;进了通知页又"永远 0"(把真实未读也盖掉) —— 两个方向都错。 ⇒ ① 初值改 0(拿到真值前必须是"没有未读",不能凭空多出 2); ② 首页把 /home 的真实 unread 写进全局状态。 (服务端 Notification::unreadCount,与通知页同源;/home 本来就返回它、 FbParse 也早就解析了 —— 只是**没人往全局状态里写**。) ③「名册页面,不好看,太丑了,应该是每个人都是圆角矩形,往中间收一点, 距离左右都有点距离,每个人中间都有一点空隙。」 🔴🔴 真凶**不是卡片形状**(v51 就做了 borderRadius + margin)—— 而是**列表容器也是纯白** ⇒ 白卡压白底 ⇒ 圆角与左右收边**全看不见**, 看上去就是一整块通栏白。这解释了"改过一轮还是丑":上次改的是卡片, 问题在"背景没有对比"。 ⇒ 容器 + 外层兜底改 FbColors.paper(页面底色),卡片保持白; 圆角 radiusS(10) → 新增 radiusCard(14)(列表项专用档:16 显胖、10 显方); 左右各 pagePad(16)、卡间 10(原 8 偏挤)、行内边距 11→12。 验证:hvigor BUILD SUCCESSFUL;_fb_arkts_guard.js 347/0(本批新增 18 条, 另**收紧 2 条**旧判据 —— M 组"圆角卡"那条原来锚"逐字相邻两行"、且**测错了对象**: 没查容器背景,所以对"白卡压白底"这个真实缺陷毫无把关能力); _fb_v59b_falsify.py 8 项注入 ⇒ 8/0。 ⚠️ 本轮反向验证头一轮漏了 3 条(都是"判据太宽"),已逐条收紧并记入 pitfalls: · 删掉头像 onClick 后仍绿 —— openMyDetail 这个标识符在**方法定义**里也出现; · 容器改回白底后仍绿 —— 本页有**两处** FbColors.paper(容器 / 兜底); · /home unread 改成写死 2 后仍绿 —— Notification::unreadCount 在 PHP 里也有两处。
This commit is contained in:
@@ -42,8 +42,20 @@ export class FbAppState {
|
||||
/** 当前会话(接口接上之前先用演示数据;`loggedIn=false` 时应跳登录页) */
|
||||
@Trace session: FbSession = FB_DEMO_SESSION;
|
||||
|
||||
/** 未读通知数(顶栏铃铛角标) */
|
||||
@Trace unread: number = 2;
|
||||
/**
|
||||
* 未读通知数(顶栏铃铛角标)。
|
||||
*
|
||||
* 🔴🔴 v59b(用户 2026-10-18):「提醒按钮,明明没提醒,怎么还显示个 2?」
|
||||
* 这个 **写死的 2** 就是答案:它原来只是个占位初值,而全工程没有任何地方
|
||||
* 用真实数据填过它(只有通知页的「全部已读」会清成 0)
|
||||
* ⇒ 没进过通知页的人**永远看到 2**。
|
||||
*
|
||||
* ⚠️ 改成 **0**:未读数在拿到真实值之前必须是"没有未读",
|
||||
* 而不是"假装有 2 条"。真实值由 `/home` 的 `unread` 写入
|
||||
* (见 FbHomePage 里那段说明),进通知页后由那边继续维护。
|
||||
* 宁可短暂少显示,也不能凭空多出一个用户会去追问的数字。
|
||||
*/
|
||||
@Trace unread: number = 0;
|
||||
|
||||
/**
|
||||
* 状态栏高度(vp)。
|
||||
|
||||
@@ -58,6 +58,15 @@ export class FbMetric {
|
||||
static readonly radius: number = 16;
|
||||
/** 小圆角(内嵌块 / 输入框) */
|
||||
static readonly radiusS: number = 10;
|
||||
/**
|
||||
* 列表项圆角(**一行一张卡**那种,如名册的人员行)。
|
||||
*
|
||||
* 🔴 为什么单独一档(2026-10-18 用户「名册太丑」):
|
||||
* 列表项**一行一张卡**、上下密排;用 16(区块卡的圆角)会显得"胖"、
|
||||
* 相邻两卡的圆角挤在一起很吵;用 10(内嵌小块的圆角)在 12vp 的行内边距下
|
||||
* 又显得方、像"被裁过的白条"。14 是这两个之间的甜点。
|
||||
*/
|
||||
static readonly radiusCard: number = 14;
|
||||
/** 胶囊圆角 */
|
||||
static readonly radiusPill: number = 999;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user