feat(孕期): 产后态不再显示「孕 42 周」,改「宝宝已出生 N 天」(v26092205)

上游 journey_stage=postpartum / 有 baby_birth_date 时,后端 /pregnancy 返回 postpartum=true
且 week=null。H5 侧补齐:

- applyRemoteProfile:**先判 postpartum 再判 empty/week==null**
  (产后返回体的 week 也是 null,落错分支会给已生产用户弹「完善孕期信息」)
- syncPregnancy:新增产后分支(文案集中在这里)
  · hero:孕周位「已出生」+ 清空紧邻的「孕周」标签 + 出生天数 / 「来到这个世界」
  · 我的孕期卡:宝宝已出生 N 天 · 记录宝宝的成长时光(进度 100%)
  · 档案页:宝宝已出生 N 天 · 孕期陪伴已结束;[data-ga]/[data-wk] 归 '--'
- 拦住 syncPregnancy 之后按 state.week 重算的链(syncStaticDates):
  week=null 会算出「看着正常但全错」的日期
- fillProfileForm:产后不再按已过的预产期回填「孕 42 周」,孕周两格留空并锁住
- renderPoster:week 为 null 时不再拼出「第 null 周档案」,退化成完整档案

⚠️ 文案(首页/孕期卡/档案页三处)如需调整只改 syncPregnancy 的产后分支
版本 v26092204 → v26092205
This commit is contained in:
2026-09-22 13:37:05 +08:00
parent 4c4c00f636
commit 849cf7a521
3 changed files with 103 additions and 14 deletions

View File

@@ -62,9 +62,14 @@ nginx:`root /opt/app` + `Cache-Control: no-cache` + `etag on` —— 缓存靠
`navigation.type === 'back_forward'`、从应用页 `location.href` 回来的 `document.referrer`);
**绝不能改成「每次加载都清」** —— 宿主恢复会把本页当返回落点加载,误清会毁掉刚用上的记录。
9. **保存资料失败必须提示,不能静默**(2026-09-22「档案以上游为准」):
`PUT /profile` 改**预产期/昵称**时,后端会**先推上游用户中心、成功才落库**,推失败返回 `code=400` 且
**不落库**。H5 必须弹提示(`_putProfile` 已按此判断 `res.code`)——静默的话下次加载会被上游值覆盖回去,
`PUT /profile` 改**预产期/昵称/宝宝小名**时,后端会**先推上游用户中心、成功才落库**,推失败返回 `code=400`
且**不落库**。H5 必须弹提示(`_putProfile` 已按此判断 `res.code`)——静默的话下次加载会被上游值覆盖回去,
用户以为"改了没生效"。改这个接口的调用方时别再把失败吞掉。
10. **产后态必须先判 `postpartum`**(2026-09-22):`/pregnancy` 的产后返回体里 `week` 也是 `null`,
`applyRemoteProfile` 与 `syncPregnancy` 都必须**先判 `state.postpartum` 再判 `empty || week == null`**,
否则会给**已经生产**的用户弹「完善孕期信息」引导;
并且 `syncPregnancy()` 之后那条按 `state.week` 重算的链(`syncStaticDates` 等)要一并拦住 ——
`week=null` 会让它算出「看着正常但全错」的日期,页面上看不出来。文案集中在 `syncPregnancy` 的产后分支。
## 5. 踩坑