100 lines
8.2 KiB
HTML
100 lines
8.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<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>
|
||
<!-- 孕期计算器 · 产检时间表(2026-11-04 用户从 20 个备选里选了带星的 10 个,本页是其中之一)。
|
||
产检时间按《孕前和孕期保健指南(2018)》(中华医学会妇产科学分会)的 7~11 次常规产检孕周窗口,换算成日期;
|
||
每次「查什么」只列常规项目,具体以产检医院安排为准。做完可以打勾(记在本机 mmbox.calc.chanjian)。
|
||
预产期优先用预产期计算器填过的值。
|
||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||
<link rel="stylesheet" href="../_shared/calc.css?v=26110402">
|
||
<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>
|
||
<div id="scroll">
|
||
<header class="bar" id="bar">
|
||
<button class="back" id="back" aria-label="返回"><svg viewBox="0 0 24 24"><path d="M15 5l-7 7 7 7"/></svg></button>
|
||
<span class="t">孕期计算器</span>
|
||
</header>
|
||
<section class="hd"><p>孕期计算器</p><h1>产检时间表</h1><span>按预产期排好每一次产检:哪天去、查什么,做完打个勾</span></section>
|
||
<section class="calc">
|
||
<div class="res" id="res"><div class="empty">填好预产期,马上排出时间表</div></div>
|
||
<div class="tabs" id="tabs"><button type="button" data-v="due">按预产期</button><button type="button" data-v="lmp">按末次月经</button></div>
|
||
<div class="fld" id="fDue"><label class="lb" for="cDue">预产期</label><input class="in num" type="date" id="cDue"></div>
|
||
<div class="fld hide" id="fLmp"><label class="lb" for="cLmp">末次月经第一天<small>按 28 天周期算</small></label><input class="in num" type="date" id="cLmp"></div>
|
||
</section>
|
||
|
||
<section class="sec hide" id="sPlan">
|
||
<h2>我的产检时间表</h2>
|
||
<p class="lead">28 周前约 4 周一次,28~36 周两周一次,36 周后每周一次</p>
|
||
<ol class="tl" id="tl"></ol>
|
||
</section>
|
||
|
||
<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=26110402"></script>
|
||
<script>
|
||
(function () {
|
||
'use strict';
|
||
var C = window.CK, $ = C.$;
|
||
C.shell();
|
||
var DAY = C.DAY, T = C.today();
|
||
var st = C.store('mmbox.calc.chanjian', { m: 'due', due: '', lmp: '', ok: {} });
|
||
if (!st.due && !st.lmp) { var sd = C.savedDue(); if (!isNaN(sd)) st.due = C.fmt(sd); }
|
||
$('#cDue').min = C.fmt(T - 60 * DAY); $('#cDue').max = C.fmt(T + 300 * DAY);
|
||
$('#cLmp').max = C.fmt(T); $('#cLmp').min = C.fmt(T - 300 * DAY);
|
||
/* [名称, 起始周, 结束周(含), 查什么, 要点] */
|
||
var V = [
|
||
['第 1 次 · 建档', 6, 13.86, '问诊建档、血常规、尿常规、血型(ABO + Rh)、肝肾功能、血糖、乙肝 / 梅毒 / 艾滋病筛查、甲状腺功能、早孕 B 超', '确认宫内孕和胎心,拿孕妇手册;抽血要空腹'],
|
||
['NT 检查', 11, 13.86, 'B 超测胎儿颈后透明层厚度,可同时做早唐', '错过就不能补,提前预约'],
|
||
['第 2 次 · 唐筛 / 无创', 14, 19.86, '中唐(15~20+6 周)或无创 DNA(12~22+6 周),血常规、尿常规、听胎心', '高龄或高风险的医生会建议羊水穿刺'],
|
||
['第 3 次 · 大排畸', 20, 24, '系统超声看宝宝结构,血常规、尿常规', '宝宝不配合可能要多照几次'],
|
||
['第 4 次 · 糖耐', 24, 28, '75 克葡萄糖耐量试验(空腹 + 喝糖水后 1 小时、2 小时抽血)、血常规、尿常规', '前一晚 10 点后禁食'],
|
||
['第 5 次', 29, 32, '产科 B 超(胎位、胎儿大小、羊水)、血常规、尿常规、听胎心', '开始两周一次'],
|
||
['第 6 次', 33, 34.86, '血常规、尿常规、听胎心、宫高腹围', '可以开始准备待产包'],
|
||
['第 7 次 · B 族链球菌', 35, 36.86, 'GBS 筛查(35~37 周)、胎心监护(34 周起)、肝功能、血常规', '确定生产医院和方式'],
|
||
['第 8 次', 37, 37.86, '胎心监护、B 超(胎位、羊水、估重)、宫颈评估', '之后每周一次'],
|
||
['第 9 次', 38, 38.86, '胎心监护、听胎心、宫高腹围', ''],
|
||
['第 10 次', 39, 39.86, '胎心监护、B 超看羊水', ''],
|
||
['第 11 次', 40, 40.86, '胎心监护、B 超、宫颈评估,过了 41 周医生一般安排住院催产', '']
|
||
];
|
||
var tabUi = C.seg($('#tabs'), st, 'm', function () { ui(); paint(); });
|
||
function ui() { $('#fDue').classList.toggle('hide', st.m !== 'due'); $('#fLmp').classList.toggle('hide', st.m !== 'lmp'); $('#cDue').value = st.due; $('#cLmp').value = st.lmp; }
|
||
function start() { var d; if (st.m === 'due') { d = C.parse(st.due); return isNaN(d) ? NaN : d - 280 * DAY; } d = C.parse(st.lmp); return d; }
|
||
function range(a, b) { return a === b ? C.cn(a) : C.cn(a) + ' ~ ' + C.cn(b); }
|
||
function paint() {
|
||
st.save();
|
||
var s0 = start(), R = $('#res');
|
||
$('#sPlan').classList.toggle('hide', isNaN(s0));
|
||
if (isNaN(s0)) { R.innerHTML = '<div class="empty">填好预产期,马上排出时间表</div>'; return; }
|
||
var nx = null, done = 0;
|
||
var h = V.map(function (v, i) {
|
||
var a = s0 + Math.round(v[1] * 7) * DAY, b = s0 + Math.round(v[2] * 7) * DAY, ok = !!st.ok[i], now = T >= a && T <= b, past = T > b;
|
||
if (ok) done++;
|
||
if (!ok && !past && !nx) nx = { v: v, a: a, b: b, now: now };
|
||
return '<li class="' + (ok ? 'ok' : now ? 'now' : past ? 'done' : '') + '"><i class="d"></i><div class="m"><b>' + v[0] + (now && !ok ? '<em>就是现在</em>' : '') + '</b>' +
|
||
'<span><i class="num">' + range(a, b) + '</i> · 孕 ' + Math.floor(v[1]) + '~' + Math.floor(v[2]) + (v[2] % 1 ? '+6' : '') + ' 周</span><span class="it">' + v[3] + '</span>' + (v[4] ? '<span>' + v[4] + '</span>' : '') + '</div>' +
|
||
'<button type="button" class="ck" data-i="' + i + '">' + (ok ? '已做 ✓' : '做完了') + '</button></li>';
|
||
}).join('');
|
||
$('#tl').innerHTML = h;
|
||
R.innerHTML = nx ? '<small>' + (nx.now ? '这次产检就是现在' : '下一次产检') + '</small><b class="big">' + nx.v[0].replace(/^第 \d+ 次 · /, '') + '</b>' +
|
||
'<div class="row"><div><small>建议时间</small><b class="num" style="font-size:15px">' + range(nx.a, nx.b) + '</b></div><div><small>' + (nx.now ? '窗口还剩' : '还有') + '</small><b class="num">' + Math.max(0, Math.round(((nx.now ? nx.b : nx.a) - T) / DAY)) + ' 天</b></div></div>' +
|
||
'<div class="pg"><i style="width:' + (done / V.length * 100).toFixed(1) + '%"></i></div><span class="note">已打勾 ' + done + ' / ' + V.length + ' 次</span>'
|
||
: '<small>产检都排完啦</small><b class="big">准备迎接宝宝</b><span class="note">已打勾 ' + done + ' / ' + V.length + ' 次</span>';
|
||
}
|
||
$('#tl').addEventListener('click', function (e) { var b = e.target.closest('.ck'); if (!b) return; var i = b.dataset.i; if (st.ok[i]) delete st.ok[i]; else st.ok[i] = 1; paint(); });
|
||
$('#cDue').addEventListener('change', function () { st.due = this.value; paint(); });
|
||
$('#cLmp').addEventListener('change', function () { st.lmp = this.value; paint(); });
|
||
tabUi(); ui(); paint();
|
||
})();
|
||
</script>
|
||
<script src="../_shared/brand.js?v=26110203"></script>
|
||
<script src="../../js/share-card.js?v=26110402"></script>
|
||
<script>window.mbShare('../../assets/share/t/chanjian-js.jpg', '产检时间表:每次产检哪天去、查什么'); /* 11-04 微信转发图 */</script>
|
||
</body>
|
||
</html>
|