@@ -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}
-/* 同时管占位的