产后改回孕期 (v26103101):孕期档案保存未来预产期后,「宝宝已出生」卡立即消失、本机阶段键改回孕期、整页重载
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
<meta name="mobile-web-app-capable" content="yes">
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<title>兜爸心选 · 孕育陪伴</title>
|
<title>兜爸心选 · 孕育陪伴</title>
|
||||||
<!-- V:26102502 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
<!-- V:26103101 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||||
<link rel="stylesheet" href="mama-box.css">
|
<link rel="stylesheet" href="mama-box.css">
|
||||||
<link rel="stylesheet" href="night.css">
|
<link rel="stylesheet" href="night.css">
|
||||||
<!-- 夜晚模式:首屏绘制前就按上次的选择加 class,避免先白后黑闪一下(开关在首页右上角 #nightBtn,逻辑见 app.js) -->
|
<!-- 夜晚模式:首屏绘制前就按上次的选择加 class,避免先白后黑闪一下(开关在首页右上角 #nightBtn,逻辑见 app.js) -->
|
||||||
@@ -2050,7 +2050,7 @@
|
|||||||
<!-- 2026-10-05 首页头图:宝宝时不时动一动小手小脚(独立文件,删掉这一行即下线) -->
|
<!-- 2026-10-05 首页头图:宝宝时不时动一动小手小脚(独立文件,删掉这一行即下线) -->
|
||||||
<script src="js/baby-limbs.js?v=26101201"></script>
|
<script src="js/baby-limbs.js?v=26101201"></script>
|
||||||
<script src="js/coach.js?v=26101211"></script>
|
<script src="js/coach.js?v=26101211"></script>
|
||||||
<script src="js/birth-flow.js?v=26102502"></script>
|
<script src="js/birth-flow.js?v=26103101"></script>
|
||||||
|
|
||||||
<!-- 禁止下拉回弹(2026-10-11 统一规则,与孕期体重同一段):竖向拖动时从手指下往上找还能朝该方向滚的容器,找不到才拦;横滑、双指、可滚列表不受影响 -->
|
<!-- 禁止下拉回弹(2026-10-11 统一规则,与孕期体重同一段):竖向拖动时从手指下往上找还能朝该方向滚的容器,找不到才拦;横滑、双指、可滚列表不受影响 -->
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
13
js/app.js
13
js/app.js
@@ -3,7 +3,7 @@
|
|||||||
(function () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||||
var VER = '26102502';
|
var VER = '26103101';
|
||||||
const $ = (s, c) => (c || document).querySelector(s);
|
const $ = (s, c) => (c || document).querySelector(s);
|
||||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||||
|
|
||||||
@@ -1998,7 +1998,9 @@
|
|||||||
};
|
};
|
||||||
/* 预产期没改就不传:表单可能是几分钟前回填的,别的应用这期间改过的话会被旧值盖回去 */
|
/* 预产期没改就不传:表单可能是几分钟前回填的,别的应用这期间改过的话会被旧值盖回去 */
|
||||||
var _due = due ? toISO(due) : '';
|
var _due = due ? toISO(due) : '';
|
||||||
if (_due !== filledDue || _wasEmpty) body.dueDate = _due;
|
/* 2026-10-31:登记过出生的人在这里保存孕周 = 回到孕期 → 预产期没改也要传,后台据此把账号翻回孕期 */
|
||||||
|
var _wasPost = !!state.postpartum;
|
||||||
|
if (_due !== filledDue || _wasEmpty || (_wasPost && _due)) body.dueDate = _due;
|
||||||
if (!_unauth) body.userName = name;
|
if (!_unauth) body.userName = name;
|
||||||
if (avatarUrl && !_unauth) body.avatar = avatarUrl;
|
if (avatarUrl && !_unauth) body.avatar = avatarUrl;
|
||||||
fetch('/api/mp/public/mama-box/profile?openid=' + encodeURIComponent(_oid), {
|
fetch('/api/mp/public/mama-box/profile?openid=' + encodeURIComponent(_oid), {
|
||||||
@@ -2017,8 +2019,11 @@
|
|||||||
setBusy(false);
|
setBusy(false);
|
||||||
if (avatarUrl && !_unauth) { syncSharedAvatar(avatarUrl); pickedAvatar = ''; }
|
if (avatarUrl && !_unauth) { syncSharedAvatar(avatarUrl); pickedAvatar = ''; }
|
||||||
applyLocal(_unauth ? '' : avatarUrl);
|
applyLocal(_unauth ? '' : avatarUrl);
|
||||||
/* 新用户首次完善资料:重载页面 → pregnancy 出真实孕周 */
|
/* birth-flow.js 听这个事件:回到孕期时把本机「已出生」阶段改回孕期,并重读首页卡片 */
|
||||||
if (_wasEmpty) setTimeout(bustReload, 700);
|
try { window.dispatchEvent(new CustomEvent('mmbox:profile-saved', { detail: { dueDate: body.dueDate || '', wasPostpartum: _wasPost } })); } catch (e) {}
|
||||||
|
/* 新用户首次完善资料 / 产后改回孕期:重载页面 → pregnancy 出真实孕周(首页 hero、「宝宝已出生」卡一起换掉) */
|
||||||
|
var _back = _wasPost && body.dueDate && body.dueDate >= toISO(new Date()); /* 预产期在未来才算回到孕期(和后台同一条规则) */
|
||||||
|
if (_wasEmpty || _back) setTimeout(bustReload, 700);
|
||||||
}).catch(function () { fail(); });
|
}).catch(function () { fail(); });
|
||||||
}
|
}
|
||||||
setBusy(true);
|
setBusy(true);
|
||||||
|
|||||||
@@ -410,6 +410,21 @@
|
|||||||
mountCards(); maybeAsk();
|
mountCards(); maybeAsk();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/* 2026-10-31 用户反馈:登记过出生的人在「孕期档案」保存了孕周,首页仍挂「宝宝已出生 · 去育儿首页」卡。
|
||||||
|
后台已把账号翻回孕期;这里把本机两个阶段键也改成孕期(否则分流页 / 育儿首页读到 baby 会直接进育儿,
|
||||||
|
育儿首页见 pending 还会把出生日期再交一次),再重读卡片。 */
|
||||||
|
window.addEventListener('mmbox:profile-saved', function (e) {
|
||||||
|
var d = (e && e.detail) || {};
|
||||||
|
/* 预产期在未来才算回到孕期(和后台同一条规则);过去的日期 = 只是改了下档案,不动阶段 */
|
||||||
|
if (DEMO || !d.dueDate || d.dueDate < iso(new Date()) || !(d.wasPostpartum || S.postpartum)) { if (!DEMO && openid) load(); return; }
|
||||||
|
S.postpartum = false; S.birth = '';
|
||||||
|
try {
|
||||||
|
localStorage.setItem(ENTRY_KEY, JSON.stringify({ stage: 'preg', date: d.dueDate, name: S.babyName || '', at: Date.now() }));
|
||||||
|
localStorage.setItem(YUNYU_KEY, JSON.stringify({ stage: 'preg', date: d.dueDate, name: S.babyName || '', pending: false }));
|
||||||
|
} catch (x) {}
|
||||||
|
mountCards();
|
||||||
|
if (openid) load();
|
||||||
|
});
|
||||||
/* 回到前台重读一次(别的应用可能刚登记了出生 / 改了预产期) */
|
/* 回到前台重读一次(别的应用可能刚登记了出生 / 改了预产期) */
|
||||||
document.addEventListener('visibilitychange', function () { if (!document.hidden && !DEMO && openid) load(); });
|
document.addEventListener('visibilitychange', function () { if (!document.hidden && !DEMO && openid) load(); });
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user