v26110446 预览:专属福利不跟后台开关一直显示;「宝宝出生了」改成和我的收藏同款列表行;踢腿音效改到手机喇叭能放的频段+绕开 iPhone 静音键+每次触摸恢复声音

This commit is contained in:
deploy
2026-11-05 03:43:54 +00:00
parent c441dae002
commit 9b18cec9b5
28 changed files with 147 additions and 120 deletions

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
<script src="../../js/ugc.js?v=26110445" data-guard></script>
<script src="../../js/ugc.js?v=26110446" data-guard></script>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<title>测一测 · 孕妈广场</title>
@@ -322,9 +322,9 @@ mark{background:linear-gradient(transparent 62%,var(--c20) 0);color:inherit;padd
</div>
<div class="toast" id="toast"></div>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="meta.js?v=26110445"></script>
<script src="tests.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script src="meta.js?v=26110446"></script>
<script src="tests.js?v=26110446"></script>
<script>
(function () {
'use strict';

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
<script src="../js/ugc.js?v=26110445" data-guard></script>
<script src="../js/ugc.js?v=26110446" data-guard></script>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<title>孕妈广场</title>
@@ -890,12 +890,12 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
<div id="sheet" role="dialog" aria-modal="true"><i class="sg"></i><div class="sbd" id="sbd"></div></div>
<div class="toast" id="toast"></div>
<script src="topics.js?v=26110445"></script>
<script src="data.js?v=26110445"></script>
<script src="feed.js?v=26110445"></script>
<script src="../js/ava-pool.js?v=26110445"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="ceshi/meta.js?v=26110445"></script>
<script src="../js/share-card.js?v=26110445"></script>
<script src="topics.js?v=26110446"></script>
<script src="data.js?v=26110446"></script>
<script src="feed.js?v=26110446"></script>
<script src="../js/ava-pool.js?v=26110446"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="ceshi/meta.js?v=26110446"></script>
<script src="../js/share-card.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -962,7 +962,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
var CMD = null, CMERR = false;
/* 头像编码:数字 = av/NNNN.webp(旧代码头像);'av:c012' = av/c012.webp(卡通/可爱卡通);'/…' = 站内绝对路径(内置头像库 /_bridge/avatars/);其余 = assets/img/mom/xxx.jpg */
var avP = function (a) { return typeof a === 'number' ? 'av/' + ('000' + a).slice(-4) + '.webp' : a.indexOf('av:') === 0 ? 'av/' + a.slice(3) + '.webp' : a.charAt(0) === '/' ? a : '../assets/img/mom/' + a + '.jpg'; };
fetch('cm.json?v=26110445').then(function (r) { return r.json(); }).then(function (j) {
fetch('cm.json?v=26110446').then(function (r) { return r.json(); }).then(function (j) {
CMD = j; if (openId && NBY[openId]) { renderComments(NBY[openId]); syncBar(NBY[openId]); }
}).catch(function () { CMERR = true; if (openId && NBY[openId]) renderComments(NBY[openId]); });
function commentsOf(n) {

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
<script src="../../js/ugc.js?v=26110445" data-guard></script>
<script src="../../js/ugc.js?v=26110446" data-guard></script>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<title>我的投稿</title>
@@ -107,7 +107,7 @@ main{padding:6px 16px 0}
</div>
<div class="wb"><button type="button" id="write"><svg class="ic" viewBox="0 0 24 24"><path d="M12 20h9M16.5 3.5a2.1 2.1 0 013 3L7 19l-4 1 1-4z"/></svg>写新的故事</button></div>
<script src="../topics.js?v=26110445"></script>
<script src="../topics.js?v=26110446"></script>
<script>
(function () {
'use strict';

View File

@@ -8,8 +8,8 @@
<meta name="apple-mobile-web-app-capable" content="yes">
<title>兜爸心选 · 孕育陪伴</title>
<!-- 11-04 UGC 总开关(孕妈广场 + 测一测,后台 /box_bm/plaza 顶部切换),见 js/ugc.js -->
<script src="js/ugc.js?v=26110445"></script>
<!-- V:26110445 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
<script src="js/ugc.js?v=26110446"></script>
<!-- V:26110446 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
<link rel="stylesheet" href="mama-box.css">
<link rel="stylesheet" href="night.css">
<!-- 11-04 用户:「顶部图片上的倒计时先删除掉」→ 不加载 hero-cd.css / hero-cd.js(文件留着,加回这两行即恢复),头图回到原样式 -->
@@ -2618,13 +2618,13 @@
<script src="/_bridge/avatar-picker.js?v=26101105"></script>
<script src="/_bridge/hand-icons.js?v=26101202"></script>
<script src="js/zodiac-art.js"></script>
<script src="guangchang/topics.js?v=26110445"></script>
<script src="js/ava-pool.js?v=26110445"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="guangchang/topics.js?v=26110446"></script>
<script src="js/ava-pool.js?v=26110446"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
<script src="js/app.js"></script>
<script src="js/kit.js?v=26110445"></script>
<script src="js/kit.js?v=26110446"></script>
<!-- 11-05 用户:孕期百问加上跟趣味小测试一样的底部 Tab(孕期百问 / 记一下 / 返回首页)。挂在 #detailQA 里,面板关着时跟着滑出屏外;
「记一下」直接开首页自己的记一下弹层(z 95 盖在百问 z 80 上),「返回首页」= 关掉百问面板 -->
<script src="js/mb-tabbar.js?v=26110445"></script>
<script src="js/mb-tabbar.js?v=26110446"></script>
<script>
(function () {
var d = document.getElementById('detailQA'); if (!d || !window.MBTab) return;
@@ -2644,7 +2644,7 @@
if (gchDone || !window.__mbUgc) return; gchDone = true;
var m = location.search.match(/[?&]gcv=([1-6])(?:&|$)/);
if (!m) window.__gcDefault = 1;
var n = m ? m[1] : '6', l = document.createElement('link'), s = document.createElement('script'), q = m ? Date.now() : 'v=26110445';
var n = m ? m[1] : '6', l = document.createElement('link'), s = document.createElement('script'), q = m ? Date.now() : 'v=26110446';
var dir = n === '4' || n === '6' ? 'js/gch/' : 'demo/gch/'; /* 11-03 上正式:定稿 V6(含它套的 V4)并进 js/gch/,其余效果稿仍在 demo/ */
l.rel = 'stylesheet'; l.href = dir + 'v' + n + '.css?' + q;
s.src = dir + 'v' + n + '.js?' + q;
@@ -2659,7 +2659,7 @@
/* 11-02 品牌露出(用户定 4 处都要):默认加载,?brand=0 可关掉对比;11-03 已并进 js/gch/ */
if (!/[?&]brand=0/.test(location.search)) {
var bl = document.createElement('link'), bs = document.createElement('script');
bl.rel = 'stylesheet'; bl.href = 'js/gch/brand.css?v=26110445'; bs.src = 'js/gch/brand.js?v=26110445';
bl.rel = 'stylesheet'; bl.href = 'js/gch/brand.css?v=26110446'; bs.src = 'js/gch/brand.js?v=26110446';
document.head.appendChild(bl); document.body.appendChild(bs);
}
})();
@@ -2669,9 +2669,9 @@
<!-- 2026-10-04 首页头图:按孕周换宝宝 + 阳光水波(独立文件) -->
<script src="js/hero-fx.js"></script>
<!-- 2026-10-05 首页头图:宝宝时不时动一动小手小脚(独立文件,删掉这一行即下线) -->
<script src="js/baby-limbs.js?v=26110445"></script>
<script src="js/coach.js?v=26110445"></script>
<script src="js/birth-flow.js?v=26110201"></script>
<script src="js/baby-limbs.js?v=26110446"></script>
<script src="js/coach.js?v=26110446"></script>
<script src="js/birth-flow.js?v=26110446"></script>
<!-- 禁止下拉回弹(2026-10-11 统一规则,与孕期体重同一段):竖向拖动时从手指下往上找还能朝该方向滚的容器,找不到才拦;横滑、双指、可滚列表不受影响 -->
<script>

View File

@@ -3,7 +3,7 @@
(function () {
'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26110445';
var VER = '26110446';
const $ = (s, c) => (c || document).querySelector(s);
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));

View File

@@ -124,28 +124,55 @@
· 浏览器规定用户碰过页面后才能出声 → 第一次点 / 摸屏幕时才建 AudioContext,之前的踢腿不响。
· 页面在后台 / 首页不在前台时本来就不动,也就不响;系统「减少动态效果」整个文件不跑。
· URL 带 kicksound=0 关掉(调试用)。 */
let ac = null;
/* 11-05 用户:「音效我打开了,但是没有声音」→ 三处原因一起修:
① 原来是 60~150Hz 的低音,手机外放喇叭基本放不出 → 改到 180~420Hz 的「咚」+ 一点低通噪声当「闷擦」,音量略加;
② iPhone 静音键开着时 WebAudio 会被静音 → 有 navigator.audioSession 就设成 playback,没有就在手势里放一段极短的静音 <audio> 把会话切到「播放」类;
③ 原来只在第一次触摸建一次 AudioContext,没起来或切后台被挂起后就再也不响 → 每次触摸都检查,挂起了就 resume。 */
let ac = null, nb = null, primed = false;
const soundOff = /[?&#]kicksound=0/.test(location.href);
function silentWav() { // 0.05 秒静音 wav(8kHz 单声道 8bit)
const n = 400, buf = new ArrayBuffer(44 + n), v = new DataView(buf), w = (o, str) => { for (let i = 0; i < str.length; i++) v.setUint8(o + i, str.charCodeAt(i)); };
w(0, 'RIFF'); v.setUint32(4, 36 + n, true); w(8, 'WAVEfmt '); v.setUint32(16, 16, true); v.setUint16(20, 1, true); v.setUint16(22, 1, true);
v.setUint32(24, 8000, true); v.setUint32(28, 8000, true); v.setUint16(32, 1, true); v.setUint16(34, 8, true); w(36, 'data'); v.setUint32(40, n, true);
for (let i = 0; i < n; i++) v.setUint8(44 + i, 128);
return URL.createObjectURL(new Blob([buf], { type: 'audio/wav' }));
}
const unlock = () => {
if (ac || soundOff) return;
try { const A = window.AudioContext || window.webkitAudioContext; if (A) { ac = new A(); if (ac.state === 'suspended') ac.resume(); } } catch (e) { ac = null; }
if (soundOff) return;
try {
if (!primed) {
primed = true;
if (navigator.audioSession) navigator.audioSession.type = 'playback';
else { const au = new Audio(silentWav()); au.setAttribute('playsinline', ''); au.volume = 0.01; const pr = au.play(); if (pr && pr.catch) pr.catch(() => {}); }
}
if (!ac) { const A = window.AudioContext || window.webkitAudioContext; if (A) ac = new A(); }
if (ac && ac.state !== 'running') ac.resume();
if (ac && !nb) { // 0.25 秒白噪声,做「闷擦」用
nb = ac.createBuffer(1, Math.floor(ac.sampleRate * .25), ac.sampleRate);
const d = nb.getChannelData(0); for (let i = 0; i < d.length; i++) d[i] = Math.random() * 2 - 1;
}
} catch (e) {}
};
['touchstart', 'pointerdown', 'click'].forEach(t => addEventListener(t, unlock, { passive: true, once: false, capture: true }));
['touchstart', 'touchend', 'pointerdown', 'click'].forEach(t => addEventListener(t, unlock, { passive: true, capture: true }));
function kickSound(delay) {
if (!ac || ac.state !== 'running') return;
try { if (localStorage.getItem('mb_kick_snd') === '0') return; } catch (e) {} // 11-05 「我的 → 隐私与权限 → 宝宝踢腿音效」关了就不响
const t = ac.currentTime + delay / 1000;
// 闷响:正弦 150→60Hz 快速下滑,低通滤掉高频,像隔着肚皮
const o = ac.createOscillator(), g = ac.createGain(), lp = ac.createBiquadFilter();
o.type = 'sine'; o.frequency.setValueAtTime(150, t); o.frequency.exponentialRampToValueAtTime(60, t + .16);
lp.type = 'lowpass'; lp.frequency.value = 420;
g.gain.setValueAtTime(0.0001, t); g.gain.exponentialRampToValueAtTime(0.16, t + .012); g.gain.exponentialRampToValueAtTime(0.0001, t + .2);
o.connect(lp); lp.connect(g); g.connect(ac.destination); o.start(t); o.stop(t + .22);
// 小气泡:很轻的上滑「啵」,晚一点点
const b = ac.createOscillator(), bg = ac.createGain(), t2 = t + .05;
b.type = 'sine'; b.frequency.setValueAtTime(520, t2); b.frequency.exponentialRampToValueAtTime(900, t2 + .07);
bg.gain.setValueAtTime(0.0001, t2); bg.gain.exponentialRampToValueAtTime(0.025, t2 + .01); bg.gain.exponentialRampToValueAtTime(0.0001, t2 + .09);
b.connect(bg); bg.connect(ac.destination); b.start(t2); b.stop(t2 + .1);
try { if (localStorage.getItem('mb_kick_snd') === '0') return; } catch (e) {} // 「我的 → 隐私与权限 → 宝宝踢腿音效」关了就不响
const t = ac.currentTime + delay / 1000, out = ac.createGain();
out.gain.value = 0.9; out.connect(ac.destination);
// 咚:正弦 420→180Hz 快速下滑(手机喇叭放得出来),带一点二次谐波让它更「实」
[[1, .32], [2, .08]].forEach(([m, v]) => {
const o = ac.createOscillator(), g = ac.createGain();
o.type = 'sine'; o.frequency.setValueAtTime(420 * m, t); o.frequency.exponentialRampToValueAtTime(180 * m, t + .14);
g.gain.setValueAtTime(0.0001, t); g.gain.exponentialRampToValueAtTime(v, t + .008); g.gain.exponentialRampToValueAtTime(0.0001, t + .18);
o.connect(g); g.connect(out); o.start(t); o.stop(t + .2);
});
// 闷擦:低通噪声一小下,像隔着肚皮蹬了一脚
if (nb) {
const n = ac.createBufferSource(), lp = ac.createBiquadFilter(), ng = ac.createGain();
n.buffer = nb; lp.type = 'lowpass'; lp.frequency.value = 900;
ng.gain.setValueAtTime(0.0001, t); ng.gain.exponentialRampToValueAtTime(0.12, t + .006); ng.gain.exponentialRampToValueAtTime(0.0001, t + .09);
n.connect(lp); lp.connect(ng); ng.connect(out); n.start(t); n.stop(t + .1);
}
}
// 安排下一次「动一动」

View File

@@ -44,10 +44,7 @@
'.bf-card .bf-go{flex:none;font-size:12.5px;font-weight:700;color:#F4593C;border:1.5px solid #F4593C;border-radius:99px;padding:6px 11px;background:#fff;white-space:nowrap}' +
'.bf-card.born{background:linear-gradient(120deg,#E6F5EC,#FBFFFC);border-color:#BFE5CF}' +
'.bf-card.born .bf-ic{background:#CFEEDC}.bf-card.born .bf-go{color:#2F8A5E;border-color:#2F8A5E}' +
'.bf-me{display:flex;align-items:center;gap:10px;width:100%;margin-top:12px;padding:14px 16px;border:0;border-radius:18px;background:#fff;text-align:left;font-size:15px;color:#2B2320;box-shadow:0 2px 10px rgba(80,40,20,.05)}' +
'.bf-me i{font-style:normal}.bf-me .bf-me-ic{flex:none;width:30px;height:30px;border-radius:10px;background:#FFE0D1;display:flex;align-items:center;justify-content:center}' +
'.bf-me.born .bf-me-ic{background:#D8EFE1}.bf-me.born .bf-me-v{color:#3A7A52}' +
'.bf-me .bf-me-t{flex:1}.bf-me .bf-me-v{font-size:12.5px;color:#9A8E86}.bf-me .bf-me-a{color:#C9BEB6}' +
'.bf-me{margin-top:14px}.bf-me .li-ico{background:#FFE0D1}.bf-me.born .li-ico{background:#D8EFE1}.bf-me.born .li-v{color:#3A7A52}' +
'.bf-ov{position:fixed;inset:0;z-index:135;display:none;background:rgba(30,20,15,.45);font-family:inherit;color:#2B2320}' +
'.bf-ov.on{display:flex;align-items:flex-end}' +
'.bf-sheet{width:100%;background:#fff;border-radius:22px 22px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));animation:bfUp .3s ease}' +
@@ -356,9 +353,10 @@
var pc = $('#screen-me .preg-card'), me = $('#bfMe');
if (me) me.remove();
/* 2026-10-22(测试会话 150e0991):产后用户「我的」里原来什么入口都没有 → 换成「宝宝已出生 · 去育儿首页」,走同一个 goBaby() */
/* 11-05 用户:「宝宝出生了」字号和图标要跟下面「我的收藏」「兜豆兑换」一致 → 直接用同一套 .list-card > .li(38px 图标块、16.5px 粗体) */
if (pc) pc.insertAdjacentHTML('afterend', S.postpartum
? '<button class="bf-me born ripple" id="bfMe" data-bf-open="baby"><span class="bf-me-ic">' + BABY('#2F8A5E', 18) + '</span><span class="bf-me-t">宝宝已出生</span><span class="bf-me-v">去育儿首页</span><i class="bf-me-a">›</i></button>'
: '<button class="bf-me ripple" id="bfMe" data-bf-open="reg"><span class="bf-me-ic">' + BABY('#F4593C', 18) + '</span><span class="bf-me-t">宝宝出生了?</span><span class="bf-me-v">切换到育儿模式</span><i class="bf-me-a">›</i></button>');
? '<div class="list-card bf-me born" id="bfMe"><button class="li ripple" data-bf-open="baby"><span class="li-ico">' + BABY('#2F8A5E', 22) + '</span><span class="li-t">宝宝已出生</span><span class="li-v">去育儿首页</span><i class="chev">›</i></button></div>'
: '<div class="list-card bf-me" id="bfMe"><button class="li ripple" data-bf-open="reg"><span class="li-ico">' + BABY('#F4593C', 22) + '</span><span class="li-t">宝宝出生了?</span><span class="li-v">切换到育儿模式</span><i class="chev">›</i></button></div>');
}
function maybeAsk() {

View File

@@ -244,5 +244,5 @@
}
/* feed.js 首页默认不加载(index.html 只引了 topics.js),这里按需拉一次 */
if (window.GC_FEED) init();
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110445'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110446'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
})();

View File

@@ -6,9 +6,9 @@
(function () {
var sec = document.getElementById('gcHome');
if (!sec) return;
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/gch/v4.css?v=26110445';
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/gch/v4.css?v=26110446';
document.head.appendChild(l);
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110445';
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110446';
s.onload = function () { if (sec.querySelector('.g4-foot')) merge(); else sec.addEventListener('gc4-ready', merge, { once: true }); }; /* v4 要先拉 feed.js 才渲染 */
document.body.appendChild(s);

View File

@@ -9,7 +9,7 @@
if (/[?&]kit=0(?:&|$)/.test(location.search)) return;
var box = document.getElementById('kit'), sec = document.getElementById('kitHome');
if (!box || !sec) return;
var V = '26110445';
var V = '26110446';
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/kit.css?v=' + V; document.head.appendChild(l);
document.documentElement.classList.add('has-kit');

View File

@@ -8,7 +8,7 @@
postMessage 不是实时投递,微信在分享那一刻才派发,所以每次换内容都要再报一次;子页面没引 jweixin,这里按需加载。 */
(function (g) {
'use strict';
var V = '26110445';
var V = '26110446';
var isWx = /MicroMessenger/i.test(navigator.userAgent || '');
var waiting = [], loading = false;
function ready(cb) {

View File

@@ -6,7 +6,7 @@
· 别的脚本读 window.__mbUgc(true/false),等结果用 window.__mbUgcReady(Promise),中途变了会发 mb-ugc 事件。
上一次拿到的值存本机 mmbox.ugc.v1,先按它渲染、接口回来再校正;接口不通就沿用上一次的值(从没拿到过 = 关)。
11-05 首页「孕N周专属福利」开关 giftEnabled(后台同一处,默认开):false → <html>.gift-off 藏 .shelf.gift2,缓存 mmbox.gift.v1。
预览站也跟这个开关(预览不跟的只是 UGC);正式版 main 是并进 UGC 那次请求里的,合并时以哪边为准都行、两边行为一致。
预览站不跟这个开关、一直显示(11-05 用户:预览放出来,正式先隐藏);正式版 main 是并进 UGC 那次请求里的,合并时以哪边为准都行、两边行为一致。
本文件在 <root>/js/ugc.js,必须同步 <script> 引入(要靠 document.currentScript 算首页地址)。 */
(function () {
var K = 'mmbox.ugc.v1', de = document.documentElement, me = document.currentScript, on = false;
@@ -21,8 +21,10 @@
'html.gift-off .shelf.gift2{display:none!important}';
(document.head || de).appendChild(st);
try { de.classList.toggle('gift-off', localStorage.getItem('mmbox.gift.v1') === '0'); } catch (e) {}
fetch('/api/mp/public/mama-box/config', { cache: 'no-store' })
/* 11-05 用户:「预览页面要放出来,正式上线的可以先隐藏」→ 预览站不跟 giftEnabled,一直显示;正式站照开关 */
var pvSite = /\/mama-box-preview\//.test(location.pathname);
if (!pvSite) try { de.classList.toggle('gift-off', localStorage.getItem('mmbox.gift.v1') === '0'); } catch (e) {}
if (!pvSite) fetch('/api/mp/public/mama-box/config', { cache: 'no-store' })
.then(function (r) { return r.json(); })
.then(function (j) {
var g = !(j && j.result && j.result.giftEnabled === false);

View File

@@ -57,7 +57,7 @@
'.tc-more{display:block;width:100%;margin-top:6px;height:40px;border:0;border-radius:99px;background:#F7F8FA;color:#4E5969;font-size:13px;font-weight:600}';
var SLUG = (location.pathname.match(/\/topic\/([^\/]+)\//) || [])[1] || '';
/* 11-04 微信转发图:每个专题一张 assets/share/t/<slug>.jpg(核心词大字 + logo),见 js/share-card.js */
if (SLUG) (function () { var s = document.createElement('script'); s.src = '../../js/share-card.js?v=26110445'; s.onload = function () { window.mbShare('../../assets/share/t/' + SLUG + '.jpg'); }; document.head.appendChild(s); })();
if (SLUG) (function () { var s = document.createElement('script'); s.src = '../../js/share-card.js?v=26110446'; s.onload = function () { window.mbShare('../../assets/share/t/' + SLUG + '.jpg'); }; document.head.appendChild(s); })();
var SK = 'mmbox.tp.v1', UK = (function () { var m = ((location.hash || '') + '&' + (location.search || '')).match(/[#?&]openid=([^&]*)/); return m ? decodeURIComponent(m[1]) : '_guest'; })();
function loadMe() { try { var a = JSON.parse(localStorage.getItem(SK) || '{}') || {}; var m = a[UK] || {}; m.cm = m.cm || {}; m.lk = m.lk || {}; return { a: a, m: m }; } catch (e) { return { a: {}, m: { cm: {}, lk: {} } }; } }
function saveMe(st) { try { st.a[UK] = st.m; localStorage.setItem(SK, JSON.stringify(st.a)); } catch (e) {} }
@@ -70,7 +70,7 @@
function getJSON(u) { return fetch(u, { cache: 'no-cache' }).then(function (r) { if (!r.ok) throw r.status; return r.json(); }); }
function related(box) {
getJSON('../_shared/idx.json?v=26110445').then(function (idx) {
getJSON('../_shared/idx.json?v=26110446').then(function (idx) {
var me = null; idx.forEach(function (x) { if (x[0] === SLUG) me = x; });
var tag = me ? me[2] : '', h = 0; for (var i = 0; i < SLUG.length; i++) h = (h * 31 + SLUG.charCodeAt(i)) >>> 0;
var rest = idx.filter(function (x) { return x[0] !== SLUG && (window.__mbUgc || ['ceshi', 'duiyou'].indexOf(x[0]) < 0); }); /* UGC 关着不推两个测试 */
@@ -177,13 +177,13 @@
}
fetch(API + '/comments?kind=topic&target=' + encodeURIComponent(SLUG) + (OID ? '&openid=' + encodeURIComponent(OID) : ''))
.then(function (r) { return r.json(); }).then(function (j) { if (j && j.code === 200) { RC = j.result; paint(); } }).catch(function () {});
getJSON('../_shared/cm/' + SLUG + '.json?v=26110445').then(function (d) { L = d.c || []; paint(); }).catch(function () { paint(); });
getJSON('../_shared/cm/' + SLUG + '.json?v=26110446').then(function (d) { L = d.c || []; paint(); }).catch(function () { paint(); });
}
function ugcReady() {
if (window.__mbUgcReady) return window.__mbUgcReady;
return new Promise(function (res) {
var u = document.createElement('script'); u.src = '../../js/ugc.js?v=26110445';
var u = document.createElement('script'); u.src = '../../js/ugc.js?v=26110446';
u.onload = function () { (window.__mbUgcReady || Promise.resolve(false)).then(res); };
u.onerror = function () { res(false); };
document.head.appendChild(u);

View File

@@ -11,8 +11,8 @@
月数按「自然月」数:从 max(出生月, 2025-01) 起,到满 3 周岁那个月之前为止(结果标「约」,以当地核定为准)。
最多填 3 个孩子;还没出生的填预产期先算。地方另有加码的(如部分城市每孩另发)不在这里算。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#E25C5C;--c2:#FF9A8A;--cbg:#FFEFED}.kid{position:relative;margin-top:12px;padding:12px;border-radius:14px;background:#FAF7F8}.kid .lb{display:flex;justify-content:space-between}.kid .rm{font-size:12.5px;font-weight:700;color:var(--m)}.add{display:block;width:100%;height:42px;margin-top:12px;border-radius:12px;border:1.5px dashed var(--c);color:var(--c);font-size:14px;font-weight:800}.kid .seg{margin-top:8px}</style>
</head>
<body>
@@ -46,7 +46,7 @@
<div class="tip"><b>地方可能另有补贴:</b>部分城市在国家 3600 元之外还另发生育补贴、育儿补贴,问一下当地卫健部门或看政务平台。</div>
<p class="foot">依据《育儿补贴制度实施方案》(2025)估算,月数折算以当地核定为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -107,10 +107,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/butie-js.jpg', '育儿补贴:每孩每年 3600 元,你家能领多少'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
<script src="../../js/ugc.js?v=26110445" data-guard></script>
<script src="../../js/ugc.js?v=26110446" data-guard></script>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<title>测一测你是什么样的妈妈?</title>

View File

@@ -10,8 +10,8 @@
每次「查什么」只列常规项目,具体以产检医院安排为准。做完可以打勾(记在本机 mmbox.calc.chanjian)。
预产期优先用预产期计算器填过的值。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#2F86C9;--c2:#6CB6F0;--cbg:#EAF5FF}.tl .ck{flex:none;align-self:flex-start;height:28px;padding:0 10px;margin-top:1px;border-radius:99px;background:#F4F6F8;color:var(--m);font-size:12px;font-weight:800}.tl li.ok .ck{background:var(--c);color:#fff}.tl li.ok .m{opacity:.55}.tl li.ok .d{border-color:var(--c);background:var(--c);box-shadow:none}.tl .m span.it{margin-top:3px;color:var(--t)}</style>
</head>
<body>
@@ -37,7 +37,7 @@
<div class="tip"><b>要空腹的几次:</b>第一次建档抽血、糖耐(OGTT)一般要空腹,前一晚 10 点后别吃东西;具体看医院通知。<br><b>错过不能补的:</b>NT(11~13+6 周)、大排畸(20~24 周)、糖耐(24~28 周)都有时间窗口,提前预约。</div>
<p class="foot">按《孕前和孕期保健指南(2018)》常规时间排,具体项目和时间以产检医院安排为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -94,10 +94,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/chanjian-js.jpg', '产检时间表:每次产检哪天去、查什么'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
<script src="../../js/ugc.js?v=26110445" data-guard></script>
<script src="../../js/ugc.js?v=26110446" data-guard></script>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<title>测一测:你家准爸爸是哪种队友?</title>

View File

@@ -11,8 +11,8 @@
计算:综合所得年度税表(3%~45%,年减除 6 万);应纳税所得 = 12 ×(月薪 − 个人五险一金 − 其他专项附加)− 60000,
省的税 = 不扣宝宝那项的税 − 扣了之后的税。不含年终奖单独计税、劳务报酬等,结果为估算。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#6C5BD6;--c2:#A595F2;--cbg:#F1EEFF}</style>
</head>
<body>
@@ -49,7 +49,7 @@
<p class="foot">按现行个税政策估算,未含年终奖单独计税等情况,以个税 App 实际计算为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -82,10 +82,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/geshui-js.jpg', '个税省多少:有宝宝一年能少交多少税'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -11,8 +11,8 @@
本省延长的天数是否由生育保险基金支付各地不一样,结果同时给出「按国家 98 天起」和「按本省合计」两个数。
津贴低于本人工资的,多数省份规定由单位补足差额 —— 填了本人月工资就算出差额。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#E0812A;--c2:#FFB067;--cbg:#FFF3E6}select.in{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#999 50%),linear-gradient(135deg,#999 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}</style>
</head>
<body>
@@ -47,7 +47,7 @@
<div class="tip"><b>生育津贴 ≠ 生育医疗费:</b>产检、住院分娩的费用另外按生育保险报销,不在这个数里。</div>
<p class="foot">按《社会保险法》《女职工劳动保护特别规定》常用算法估算,实际以当地医保部门核定为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -86,10 +86,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/jintie-js.jpg', '生育津贴计算器:产假期间能领多少钱'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -138,9 +138,9 @@ button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
})();
</script>
<!-- 11-05 用户:底部加上跟趣味小测试一样的 Tab(孕期计算器 / 记一下 / 返回首页) -->
<script src="../../js/mb-tabbar.js?v=26110445"></script>
<script src="../../js/mb-tabbar.js?v=26110446"></script>
<script>MBTab.init({ root: '../../', first: { t: '孕期计算器', ic: 'calc' } });</script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/jisuan.jpg', '孕期计算器:生娃花费、预产期、产假天数,一算就知道'); /* 11-04 微信转发图 */</script>
</body>
</html>

View File

@@ -10,8 +10,8 @@
对比用国家卫健委《中国居民营养与慢性病状况报告(2020 年)》18~44 岁平均身高:男 169.7 cm、女 158.0 cm。
身高约 70% 看遗传,营养、睡眠、运动影响剩下的部分 —— 结果只是参考范围。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#1F9BA8;--c2:#5FCBD3;--cbg:#E6F7F8}.sx{display:flex;gap:10px;margin-top:12px}.sx div{flex:1;padding:10px;border-radius:12px;background:rgba(255,255,255,.18)}.sx b{display:block;font-size:22px;font-weight:900;line-height:1.3}</style>
</head>
<body>
@@ -46,7 +46,7 @@
<p class="foot">按遗传靶身高公式估算,再按家族身高、作息和运动习惯小幅调整;实际身高受营养、睡眠、运动和疾病等影响,仅供参考。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -89,10 +89,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/shengao-js.jpg', '宝宝身高预测:长大后大概多高'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -11,8 +11,8 @@
各地规定不一,页面写「以当地为准」。很多地方已开通「新生儿出生一件事」联办(出生证 + 户口 + 医保 + 社保卡一次办)。
做完可以打勾(记在本机 mmbox.calc.shouxu);还没生的按预产期先排。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#4E7FD8;--c2:#86AEF2;--cbg:#EDF3FF}.tl .ck{flex:none;align-self:flex-start;height:28px;padding:0 10px;margin-top:1px;border-radius:99px;background:#F4F6F8;color:var(--m);font-size:12px;font-weight:800}.tl li.ok .ck{background:var(--c);color:#fff}.tl li.ok .m{opacity:.55}.tl li.ok .d{border-color:var(--c);background:var(--c);box-shadow:none}.tl li.late .m b em{background:#FFE8E6;color:#E0453A}.tl .m span.w{color:var(--t)}</style>
</head>
<body>
@@ -37,7 +37,7 @@
<div class="tip"><b>先查有没有「出生一件事」:</b>很多城市在支付宝、微信或当地政务 App 上能把出生医学证明、上户口、医保参保、社保卡一次办完,不用一趟趟跑。<br><b>要准备的:</b>爸妈身份证、户口本、结婚证、出生医学证明(宝宝名字定好再办)。</div>
<p class="foot">各地规定和截止时间不完全一样,以当地公安、医保、卫健部门要求为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -88,10 +88,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/shouxu-js.jpg', '出生后手续时间线:每件事截止哪天'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -11,8 +11,8 @@
顺带提示两种溶血风险:妈妈 Rh 阴性 + 爸爸 Rh 阳性(Rh 溶血,要查抗 D 抗体);妈妈 O 型 + 爸爸非 O 型(ABO 溶血,多数轻)。
顺式 AB(cis-AB)、孟买型等罕见情况不算,页面写明。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#D9475A;--c2:#FF8A96;--cbg:#FFEDEF}.bars{margin-top:12px}.bars div{display:flex;align-items:center;gap:8px;margin-top:6px}.bars b{flex:none;width:44px;font-size:16px}.bars i{flex:1;height:12px;border-radius:99px;background:rgba(255,255,255,.25);overflow:hidden}.bars i u{display:block;height:100%;border-radius:99px;background:#fff}.bars span{flex:none;width:52px;text-align:right;font-size:14px;font-weight:800}.bars .no{opacity:.45}</style>
</head>
<body>
@@ -44,7 +44,7 @@
<p class="foot">按常规遗传规律估算,不能用来做亲子鉴定;顺式 AB、孟买型等罕见血型不在计算范围。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -98,10 +98,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/xuexing-js.jpg', '宝宝血型推算:爸妈血型配宝宝会是什么型'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -71,7 +71,7 @@ button{cursor:pointer}
.tip b{color:var(--h)}
.foot{margin:14px 20px 0;font-size:12px;color:var(--m);text-align:center;line-height:1.6}
</style>
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
</head>
<body>
<svg style="position:absolute;width:0;height:0" aria-hidden="true"><symbol id="i-back" viewBox="0 0 24 24"><path d="M15 5l-7 7 7 7"/></symbol></svg>
@@ -188,10 +188,10 @@ button{cursor:pointer}
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/yuchanqi-js.jpg', '预产期计算器:宝宝哪天到?还有几天见面'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -9,8 +9,8 @@
价格是 2026 年市场行情的估算区间(月子中心 28 天套餐、金牌 / 普通月嫂 26 天、在家坐月子的食材营养 + 用品),按城市 × 档次取值,按天数折算;
不是报价,只帮用户比较三种方式的量级。改价格只改下面 P 表。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#C9658F;--c2:#F0A0C0;--cbg:#FCEEF4}</style>
</head>
<body>
@@ -37,7 +37,7 @@
<div class="tip"><b>看月子中心记得问清:</b>价格含不含宝宝护理、产后修复、家属餐和陪护床;护士是否 24 小时、一对几;有没有医护资质和儿科医生定期巡房。<br><b>请月嫂:</b>看健康证、育婴师证,最好先面试、试工,合同写清休息和换人规则。</div>
<p class="foot">价格为 2026 年市场行情估算,各地差别很大,以实际报价为准。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -71,10 +71,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/yuezi-js.jpg', '月子花费:月子中心、月嫂、在家坐各花多少'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -10,8 +10,8 @@
孕月按 4 周一个月(孕 1~10 月);孕早期 < 14 周、孕中期 14~27+6 周、孕晚期 ≥ 28 周;37 周足月、42 周过期。
宝宝像什么用全生态统一表 /common/baby-size.js(别自己维护)。预产期计算器填过的值直接拿来用。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#E2668E;--c2:#FF9DB8;--cbg:#FFEEF3}.bs{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.18)}.bs i{font-style:normal;font-size:30px;line-height:1}.bs b{display:block;font-size:15px}.chk{display:flex;align-items:center;gap:10px;margin-top:10px}.chk .in{flex:1;margin:0}.chk b{flex:none;min-width:120px;text-align:right;font-size:15px;color:var(--c)}</style>
</head>
<body>
@@ -49,7 +49,7 @@
<div class="tip"><b>孕周以早孕 B 超为准:</b>月经不规律或记不清末次月经时,医生会按孕早期 B 超(头臀长)定孕周。这里算的是常规算法,仅供参考。</div>
<p class="foot">计算结果仅供参考,不能代替医生诊断。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script src="/common/baby-size.js?v=26101001"></script>
<script>
(function () {
@@ -109,10 +109,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/yunzhou-js.jpg', '孕周计算器:今天孕几周几天,宝宝像什么'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -12,8 +12,8 @@
某一孕周的推荐范围 = 孕早期 0~2 kg + (孕周 − 13) × 每周范围,封顶到总范围。双胎按 IOM 2009(标准没覆盖双胎)。
只算范围不做记录(11-04 用户:记体重是另一个记录工具)。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110445">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<link rel="stylesheet" href="../_shared/calc.css?v=26110446">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<style>:root{--c:#2E9C6A;--c2:#6CCB9A;--cbg:#E8F7EF}.gauge{position:relative;height:10px;margin-top:14px;border-radius:99px;background:rgba(255,255,255,.28)}.gauge .ok{position:absolute;top:0;bottom:0;border-radius:99px;background:rgba(255,255,255,.65)}.gauge .me{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(0,0,0,.15)}.glab{display:flex;justify-content:space-between;margin-top:4px;font-size:11.5px;opacity:.85}</style>
</head>
<body>
@@ -46,7 +46,7 @@
<div class="tip"><b>胖得太快或太慢都要留意:</b>增重过多容易妊娠糖尿病、巨大儿,过少可能影响宝宝发育。一周涨超过 1 公斤,或者突然腿脚、脸都肿,要尽快告诉医生。</div>
<p class="foot">依据 WS/T 801—2022《妊娠期妇女体重增长推荐值标准》;双胎参考美国医学研究所 IOM 2009。仅供参考。</p>
</div>
<script src="../_shared/calc.js?v=26110445"></script>
<script src="../_shared/calc.js?v=26110446"></script>
<script>
(function () {
'use strict';
@@ -95,10 +95,10 @@
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110445"></script>
<script src="../../js/share-card.js?v=26110446"></script>
<script>window.mbShare('../../assets/share/t/zengzhong-js.jpg', '孕期增重范围:孕期胖多少才合适'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110445"></script>
<script src="../_shared/wizard.js?v=26110446"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>

View File

@@ -203,8 +203,8 @@ html.cm .key{margin-top:26px}
html.cm:not(.cm-all) .cm-more{display:flex;align-items:center;justify-content:center;gap:4px;margin:22px 20px 0;height:46px;border-radius:99px;background:var(--cbg);color:var(--c);font-size:14.5px;font-weight:700;width:calc(100% - 40px)}
</style>
<!-- 11-04 计算器模式(calc=1)走分步:一步一题、最后出结果,见 ../_shared/wizard.js -->
<link rel="stylesheet" href="../_shared/wizard.css?v=26110445">
<script src="../_shared/wizard.js?v=26110445"></script>
<link rel="stylesheet" href="../_shared/wizard.css?v=26110446">
<script src="../_shared/wizard.js?v=26110446"></script>
</head>
<body>
<svg class="hide" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">