问题:底 tab 早已改跳 laixin、红点读 /api/mp/public/laixin/unread,但首页那张 「宝宝来信」卡仍由 pushLatestToHome() 按 LETTERS(box_app /mama-box/letters)驱动, 而那条线对多数用户是 0 封 —— 同一屏上会出现「红点说有新信、卡里什么都没有」。 改法(两者共用一个 laixin 未读结果): - 新增 hideLetterCard() + applyLaixinReminder(r):unread>0 才显示,文案按 「N 封新信 / M 条新回信」组装并附「最近一封 <时间>」;归零收起;上游降级(ok:false)、 访客态、未建档一律收起(与角标同一套判据) - syncLaixinBadge() → syncLaixinReminder():一次 fetch 同时落红点与首页卡(owner 唯一) - 删除 pushLatestToHome() / lettersResolved / state.homeLetter / openDetail(): 内置来信屏(#screen-letter)与其 /letters 数据仍在,但不再往首页推卡 - 首页卡点击改走 openLetterApp()(跳 laixin),与底 tab 同落点;卡不再打开内置详情 - 卡仍默认 .hide + #homeBody 默认 .no-letter(保住 §9 的不闪规则) 验证(本地四态 mock + 浏览器): - laixin 未读=2 → 接口回来前 hidden,回来后显示「小汤圆来信 / 有 1 封新信、1 条新回信 · 最近一封 今天 9:00」,红点同亮(同一次请求) - 未读=0 → 全程收起;上游 ok:false → 冷启动收起、已显示则保持显示 - 访客(无 openid)→ 收起 - **box_app 来信有 1 封未读但 laixin 未读=0 → 首页卡仍收起**(内置屏照常渲染,互不影响) - 点卡 → https://mp.yizhezhe.com/laixin/?openid=…&unionid=…;内置列表点开详情仍正常;errors 空
238 KiB
238 KiB