From 307f6182e42a1e8c3faa811693c365c7cabf8539 Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Tue, 22 Sep 2026 20:25:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=B0=E4=B8=80=E4=B8=8B/=E9=A1=BE?= =?UTF-8?q?=E9=97=AE=E7=A0=81):=20=E9=9A=90=E8=97=8F=E6=9C=AA=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=9A=84=E3=80=8C=E4=BB=8A=E5=A4=A9=E5=B7=B2=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E3=80=8D=E5=BF=AB=E6=8D=B7=E5=8C=BA=20+=20=E9=A1=BE?= =?UTF-8?q?=E9=97=AE=E4=BA=8C=E7=BB=B4=E7=A0=81=E6=8D=A2=E7=9C=9F=E5=9B=BE?= =?UTF-8?q?=20(v26092207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 记一下弹层: - 日期/「今天已记 N 条」那行 + 「今天已使用」快捷区(数胎动/孕期体重/胎心记录) 功能尚未实现、数据是写死的演示值,按要求先整体隐藏。 - 只挂 .tbd-hide,**不删 DOM**:js 里 $('#quickKick') 没有判空,且 #kickCount / #todayCount / #noteWhen 会被回填,删掉会直接抛错。 - dedupeApps 在快捷区隐藏时跳过:否则首个可见小标题会变成没有指代对象的 「其他孕期工具」;renderAppGrid 补写 data-toast,避免点「共 N 个」时退回 index.html 里写死的「共 16 个」。 企业微信顾问二维码: - 占位 svg(is-stub)换成真图 assets/img/4834fe8d686a.png。 文件名 = 文件内容 md5 前 12 位,与该目录另外 34 张图一致(内容寻址,换码即换 URL)。 - .wx-qr 挂在元素本身、svg/img 通吃,CSS 未改;14px 圆角只裁到四角白色静默区, 切不到码点。 --- assets/img/4834fe8d686a.png | Bin 0 -> 13973 bytes index.html | 60 +++++++++++++++--------------------- js/app.js | 20 ++++++++++-- mama-box.css | 8 ++++- 4 files changed, 48 insertions(+), 40 deletions(-) create mode 100644 assets/img/4834fe8d686a.png diff --git a/assets/img/4834fe8d686a.png b/assets/img/4834fe8d686a.png new file mode 100644 index 0000000000000000000000000000000000000000..184eb812e9c1f0b6cf96d8261d1ed3e39d849cc0 GIT binary patch literal 13973 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 兜爸心选 · 孕育陪伴 - + @@ -1263,13 +1263,19 @@

记一下

-

— · 今天已记 4 条

+ +

— · 今天已记 4 条

-
今天已使用
-
+ +
今天已使用
+
@@ -1398,39 +1404,21 @@ 这一处不一致是需求方明确保留的(见改动清单 D3),别顺手「统一」。 -->
- - - - - - - - - - - - - - - - - - - 示例二维码 · 待替换 - + ⚠️ 换码时的几条规矩: + ① 文件名取**文件内容 md5 的前 12 位**(md5sum 新图 | cut -c1-12)。 + 该目录下 35 张图全按这个规则,别起描述性名字 —— 内容一变 URL 就变, + 天然不会被上一版二维码的缓存顶住。 + ② 只动下面这一行。.wx-qr 挂在元素本身、svg 与 img 通吃(见 mama-box.css), + CSS 一个字都不用改:168×168、14px 圆角都是现成的。 + 14px 圆角只吃掉四角极角的**白色静默区**(本图静默区 13/396 → 显示约 5.5px, + 对角裁切 4.1px < 到黑色模块的 7.8px),切不到码点,不影响扫码。 + ③ 注释里除了上面那条**真实存在**的路径,别再写别的图片路径字面量 —— + 构建脚本连 HTML 注释一起扫,写了不存在的就报「缺少资源文件」。 --> + 企业微信顾问二维码

请添加资料小助手,回复「领资料」

diff --git a/js/app.js b/js/app.js index f04f7bb..77fecad 100644 --- a/js/app.js +++ b/js/app.js @@ -3,7 +3,7 @@ (function () { 'use strict'; /* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */ - var VER = '26092205'; + var VER = '26092207'; const $ = (s, c) => (c || document).querySelector(s); const $$ = (s, c) => Array.from((c || document).querySelectorAll(s)); @@ -336,9 +336,15 @@ const t = e.target.closest('.app'); if (t && t.dataset.url) jumpApp(decodeURIComponent(t.dataset.url), decodeURIComponent(t.dataset.id || '')); }; - /* 角标「共 N 个」同步真实数量 */ + /* 角标「共 N 个」同步真实数量。 + ⚠️ 顺带写 data-toast:点它弹的那句原来由 dedupeApps 拼「已使用的 N 个已置顶」, + 而快捷区现在被临时隐藏(dedupeApps 直接 return,见那里的注释), + 若这里不写,就会退化成 index.html 里写死的「共 16 个」—— 数字比实际多。 */ const cnt = $('.apps-head.for-all .sec-more'); - if (cnt) cnt.textContent = '共 ' + apps.length + ' 个 ›'; + if (cnt) { + cnt.textContent = '共 ' + apps.length + ' 个 ›'; + cnt.dataset.toast = '共 ' + apps.length + ' 个孕期工具'; + } } function loadPublishedApps() { fetch('/api/mp/apps?isPublished=1&pageSize=200') @@ -579,6 +585,14 @@ /* 工具列表去重:顶部「今天已使用」的快捷入口若在下方列表里重复出现, 用户会觉得同一个工具出现了两次,这里按名称把它们从全部列表中摘掉 */ (function dedupeApps() { + /* ⚠️ 快捷区「今天已使用」功能未实现、已临时隐藏(index.html 里挂 .tbd-hide)。 + 没有置顶区就不存在「同一个工具出现两次」,所以两件事都要跳过: + ① 按 .q-t 摘除同名磁贴;② 把小标题改成「其他孕期工具」——藏了上面那块之后, + 第一眼看到的就是它,「其他」俩字会变成没有指代对象的错文案, + 保持 index.html 里的默认「全部孕期工具」才对。 + 判据直接读 DOM(.tbd-hide 在不在),单一事实来源在 index.html: + 把那里三处 .tbd-hide 去掉,本段会自动重新生效,不用改这里。 */ + if ($('.quick-row.tbd-hide')) return; const used = new Set($$('.quick-row .q-t').map(e => e.textContent.trim())); $$('#appsGrid .app').forEach(b => { if (used.has(b.textContent.trim())) b.remove(); }); const rest = $$('#appsGrid .app').length; diff --git a/mama-box.css b/mama-box.css index 6895c2a..5482971 100644 --- a/mama-box.css +++ b/mama-box.css @@ -1837,7 +1837,7 @@ a.skip:focus{left:16px;top:16px} 紧挨着上面的网盘弹窗放:这两个弹窗是同一条领取动线的前后两步 (先扫码换码,再拿链接)。隔开几百行的话,改动线文案时几乎必然只改到一头。 */ .wx-qr-box{margin-top:16px;text-align:center} -/* 同时管占位的 和以后换上的 :换真图时这段 CSS 一个字都不用动。 +/* 这条挂在元素本身(原占位的 、现在这张真图 都吃):换图时一个字都不用动。 ⚠️ 别改成 .wx-qr img 或 svg.wx-qr —— 那样一换成 尺寸就全丢。 */ .wx-qr{display:block;width:168px;height:168px;margin:0 auto;border-radius:14px;background:#fff} .wx-qr-cap{font-size:12px;color:var(--muted);margin-top:10px} @@ -1870,6 +1870,12 @@ a.skip:focus{left:16px;top:16px} .sheet-close:active{transform:scale(.9)} .sheet-scroll{flex:1;overflow-y:auto;padding:0 18px 8px} .sheet-scroll::-webkit-scrollbar{display:none} +/* ⚠️ 临时隐藏开关(2026-09-22):「记一下」弹层里的「今天已使用」快捷区 + 日期/今天已记 那行 + **功能尚未实现**(数据是写死的演示值),产品要求先整体隐藏、代码保留。 + 用法:在 index.html 对应元素上挂 .tbd-hide。 + 恢复:去掉 index.html 里那三处 .tbd-hide 即可(js/app.js 的 dedupeApps 会自动重新生效)。 */ +.tbd-hide{display:none!important} + /* 「今日心情」已删除,只剩 3 个工具,所以是 3 列 */ .quick-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px} .quick{border-radius:17px;padding:13px 8px;text-align:center;transition:transform .16s}