From dedce247e9d0c210cdcee8feccc8c02534a0a447 Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Tue, 22 Sep 2026 23:48:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BB=8A=E6=97=A5=E8=84=9A=E5=8D=B0):=20?= =?UTF-8?q?=E8=AF=BB=E4=B8=8D=E5=88=B0=E4=B8=8D=E7=BC=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=20=E2=80=94=E2=80=94=20=E5=9B=9B=E7=A7=8D=E6=98=BE=E9=9A=90?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E6=94=B6=E5=8F=A3=E5=88=B0=20fpRender?= =?UTF-8?q?=EF=BC=88=E5=94=AF=E4=B8=80=20owner=EF=BC=89(v26092214)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 产品口径(2026-09-22): · **无档案**(上游查无此人 / 本地未关联)→ 显示引导占位(#tlGuide:「还没有你的脚印 / 去「数胎动」记一笔,这里就会长出你今天的脚印」) · **有档案** → 必须从接口读;**读不到就不显示**(整块 .today-line 收起),不再回退演示行 改动: - index.html:删掉 4 条**写死的演示行**(胎动 12 次 / 体重 58.2kg / 产检提醒 / 睡前散步 20 分钟)—— 它们只在「接口读不到」时露出来,等于上游一抖页面就开始编数据。换成一行中性「正在获取今天的脚印…」 +新增 #tlGuide 引导块,并在注释里写明四种模式与判定。 - 新增 fpApply()/fpRender():模块显隐**只有一个 owner**(pending / rows / empty / guide / hide, 外加「未建档 / 产后」硬门槛优先于接口结论)。 ⚠️ 之前 syncPregnancy 也直接改 .today-line 的 display,两个 owner 撞出竞态 —— 实测「有档案 + 上游故障(degraded)」会被 profile 回来后重新显示出来(该收起的没收起)。现在 syncPregnancy 两处 都只调 fpRender()。 - 没有真实事件时给 .today-line 挂 .no-ai,AI 气泡一并收起:那句「今天你数到我动了 3 次」是写死的 演示文案,今天没记 / 未关联 / 读不到时显示它就是在说假话。拿到真实事件时才显示气泡 (把那个数字接到真实次数属另一件事,等产品定文案)。 本地验证(桩后端,五种模式各跑一遍,并把 profile 延迟 1.5s 以复现前面那个竞态): rows → 模块显示 + 真实事件 + 气泡显示;empty → 「还没有足迹」+ 无气泡; guide → 引导块显示 + 时间轴收起 + 无气泡;degraded → **整块不显示**; fail(接口 500) → **整块不显示**;未建档 → 整块不显示。全程无 JS 异常。 --- index.html | 27 ++++++++++++++---- js/app.js | 77 ++++++++++++++++++++++++++++++++++++++++------------ mama-box.css | 8 ++++++ 3 files changed, 88 insertions(+), 24 deletions(-) diff --git a/index.html b/index.html index 929334e..366986a 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ 兜爸心选 · 孕育陪伴 - + @@ -303,12 +303,23 @@ +
-
09:10胎动 12 次来源 · 数胎动
-
13:00体重 58.2kg来源 · 孕期体重
-
16:30产检提醒来源 · 孕检日历
-
20:15睡前散步 20 分钟来源 · 运动记录
+
今天正在获取今天的脚印…
+
+ + + 否则首页气泡说「小家伙」、点进去小结说「我」,像两个人在写。 + ⚠️ 它是**演示文案**(数字写死),所以只有拿到真实事件的当天才显示: + .today-line 挂上 .no-ai 时整颗气泡收起(见 JS 的 fpApply)。 + 待办:把「3 次」接到真实次数(卡片接口 kick.value / events 里数胎动那条), + 并给「今天没记」定一句不说假话的文案 —— 产品确认口径后再改。 --> 妈妈,今天你数到我动了 3 次,
我今天精神特别好。