feat(今日脚印): AI 气泡改说真话 —— 文案取接口 digest,引导取 lead+unused (v26092217)
配合 box_app 的 B 方案(今日脚印换源到数胎动用户面 /user/daily/footprint)。
接口现在一次给全:事件 + digest(气泡文案)+ lead/unused(引导),于是首页不用再编数据。
- **AI 气泡**:文案由 fpRender() 从 `digest.text` 写入(真实文案,宝宝口气的 AI 句子),
`digest.warn` 为真时整句标红(.ai-warn)。取不到 digest 就整颗气泡收起。
⚠️ index.html 里那句写死的「妈妈,今天你数到我动了 3 次…」已删除 —— 它对任何用户都显示,
而且把 today 的假次数和真实时间轴摆在同一屏。现在这条规则是 **data-driven**(有文案才显示),
不再靠"有没有事件"猜。
- **引导占位**:文案用接口的 `lead`(如「宝妈,先从这几件事记起吧。」),应用用 `unused[]` ——
能对上 App 表的渲染成**可点芯片**(点击 jumpApp 进该应用),对不上(如不在 App 表的宝宝来信)只显示名字。
- **三种显隐模式**(fpRender 是模块显隐的唯一 owner):
rows 拿到事件 → 时间轴;guide 一条都没有(上游查无此人 / kind=fallback 今天没活动 /
只浏览没产出记录)→ 引导;hide 接口读不到 / degraded → 整块不显示。
原来「有档案但今天没记」的「还没有足迹」空态并入 guide(上游的 lead + 推荐应用比一句空态有用)。
- 删掉不再使用的 emptyFootprintStep()。
本地验证(桩后端,五种返回 × 资料延迟):rows → 时间轴 + 气泡显示**真实 digest 文案**;
guide → 上游 lead + 芯片(数胎动/胎儿估重可点、宝宝来信纯文本);linked=false → 引导兜底标题;
degraded / 接口 500 → 整块不显示。全程无 JS 异常。
This commit is contained in:
26
index.html
26
index.html
@@ -7,7 +7,7 @@
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>兜爸心选 · 孕育陪伴</title>
|
||||
<!-- V:26092216 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<!-- V:26092217 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<link rel="stylesheet" href="mama-box.css">
|
||||
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
|
||||
<!-- 共享助手:授权/跳商城/位置上报(分享卡片同步,见 docs/h5-auth-standard.md 第四节) -->
|
||||
@@ -316,10 +316,14 @@
|
||||
aria-label="宝宝的今日脚印,查看完整档案">
|
||||
<div class="step"><span class="st-time">今天</span><span class="st-dot"></span><span class="st-txt">正在获取今天的脚印…</span><span class="st-from"></span></div>
|
||||
</div>
|
||||
<!-- 无档案时的引导占位(fpApply('guide') 才显示;此时 #tlSteps 收起) -->
|
||||
<!-- 引导占位(fpApply('guide') 才显示,此时 #tlSteps 收起):
|
||||
文案与应用**都来自接口** —— lead 是上游自己的引导语(如「宝妈,先从这几件事记起吧。」),
|
||||
unused[] 是今天没用过的应用,能对上 App 表的会渲染成可点芯片(见 js 的 renderGuide)。
|
||||
这里的默认文案只在接口没给 lead 时兜底。 -->
|
||||
<div class="tl-guide" id="tlGuide" style="display:none">
|
||||
<div class="tl-guide-t">还没有你的脚印</div>
|
||||
<div class="tl-guide-s">去「数胎动」记一笔,这里就会长出你今天的脚印</div>
|
||||
<div class="tl-guide-t" id="tlGuideTitle">还没有你的脚印</div>
|
||||
<div class="tl-guide-s" id="tlGuideSub">去上面的工具记一笔,这里就会长出你今天的脚印</div>
|
||||
<div class="tl-guide-apps" id="tlGuideApps"></div>
|
||||
</div>
|
||||
<!-- 这一天的收尾节点。三个直接子元素刻意和 .step 一样排
|
||||
(42px 的左格 + 圆点 + 剩下的),点才落得进同一条竖线里。
|
||||
@@ -335,11 +339,15 @@
|
||||
<!-- 这句是 app.js 里 AI_LOGS[0].txt 的手写副本(这里要 <b> 和 <br> 排版,
|
||||
没法直接共用那个字符串)。那边改口吻,这里必须跟着改,
|
||||
否则首页气泡说「小家伙」、点进去小结说「我」,像两个人在写。
|
||||
⚠️ 它是**演示文案**(数字写死),所以只有拿到真实事件的当天才显示:
|
||||
.today-line 挂上 .no-ai 时整颗气泡收起(见 JS 的 fpApply)。
|
||||
待办:把「3 次」接到真实次数(卡片接口 kick.value / events 里数胎动那条),
|
||||
并给「今天没记」定一句不说假话的文案 —— 产品确认口径后再改。 -->
|
||||
<span class="ab-say">妈妈,今天你数到我动了 <b>3</b> 次,<br>我今天精神特别好。</span>
|
||||
✅ 2026-09-23 已接真源:句子的数据来自 box_app 的 /footprint/today
|
||||
(上游数胎动平台的用户面接口 /user/daily/footprint 的 `digest.text`),
|
||||
由 fpRender() 写入;`digest.warn` 为真时整句标红(.ai-warn)。
|
||||
⚠️ 但 AI 小结面板(详情页 renderAI → AI_LOGS)里那份仍是**演示文案**,
|
||||
与这里是两套数据 —— 面板要一并用真数据,得先有 mood/stats/建议的字段。 -->
|
||||
<!-- ⚠️ 文案由 js 的 fpRender() 从接口 `digest.text` 写入(今日脚印接口给的真文案)。
|
||||
原来这里写死「妈妈,今天你数到我动了 3 次…」,任何用户都看到 —— 已删。
|
||||
接口没给 digest(今天没活动 / 读不到)时整颗气泡由 .no-ai 收起,不留空壳。 -->
|
||||
<span class="ab-say"></span>
|
||||
</span>
|
||||
<!-- 「AI自动汇总你每日记录」按用户要求删了,这行现在只剩右边的入口。
|
||||
✅ 位置不用额外处理:.ab-foot em 本来就写着 margin-left:auto,
|
||||
|
||||
Reference in New Issue
Block a user