孕周门槛:角标改「N周后开放」,首页替补卡去掉「孕 16 周后换成数胎动」 v26101015

Co-Authored-By: AI 助手
This commit is contained in:
karlcarlo
2026-10-11 13:52:34 +00:00
parent 06512a2134
commit 90989a43a6
3 changed files with 8 additions and 9 deletions

View File

@@ -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:26101014 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 --> <!-- V:26101015 缓存版本标记:改 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) -->

View File

@@ -3,7 +3,7 @@
(function () { (function () {
'use strict'; 'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */ /* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26101014'; var VER = '26101015';
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));
@@ -376,13 +376,13 @@
$('#sgLeft').textContent = (left >= 7 ? '还有 ' + Math.ceil(left / 7) + ' 周' : '还有 ' + left + ' 天') + ',大约 ' + mdTxt(gaToDate(g.wk * 7)) + ' 开放'; $('#sgLeft').textContent = (left >= 7 ? '还有 ' + Math.ceil(left / 7) + ' 周' : '还有 ' + left + ' 天') + ',大约 ' + mdTxt(gaToDate(g.wk * 7)) + ' 开放';
openModal('modalStageGate'); openModal('modalStageGate');
} }
/* 宫格 / 首页工具卡上的小角标「16周+」:没到门槛的灰一点,到了自动去掉 */ /* 记一下宫格上的小角标「16周后开放」:没到门槛的灰一点,到了自动去掉;首页工具卡改成直接换替补(swapHomeCards) */
function markStageLocks() { function markStageLocks() {
$$('#appsGrid .app').forEach(b => { $$('#appsGrid .app').forEach(b => {
const g = stageGateOf(decodeURIComponent(b.dataset.url || ''), decodeURIComponent(b.dataset.id || '')); const g = stageGateOf(decodeURIComponent(b.dataset.url || ''), decodeURIComponent(b.dataset.id || ''));
const on = stageLocked(g); const on = stageLocked(g);
b.classList.toggle('is-locked', on); b.classList.toggle('is-locked', on);
if (on) b.dataset.lock = g.wk + '周+'; else delete b.dataset.lock; if (on) b.dataset.lock = g.wk + '周后开放'; else delete b.dataset.lock;
}); });
swapHomeCards(); swapHomeCards();
} }
@@ -434,8 +434,7 @@
el.classList.remove('is-warn'); el.classList.remove('is-warn');
el.setAttribute('aria-label', sub.name + ',' + sub.sub); el.setAttribute('aria-label', sub.name + ',' + sub.sub);
el.innerHTML = slot === 'kick' el.innerHTML = slot === 'kick'
? '<div class="mc-head"><div class="mc-title">' + sub.name + '</div><div class="mc-sub">' + sub.sub + '</div>' + ? '<div class="mc-head"><div class="mc-title">' + sub.name + '</div><div class="mc-sub">' + sub.sub + '</div></div>' +
'<div class="mc-extra">孕 ' + g.wk + ' 周后这里换成' + g.name + '</div></div>' +
'<span class="mc-btn">' + sub.btn + '</span>' + swapArt(sub.id) '<span class="mc-btn">' + sub.btn + '</span>' + swapArt(sub.id)
: '<div class="mc-title sm">' + sub.name + '</div><div class="mc-sub">' + sub.sub + '</div>' + swapArt(sub.id); : '<div class="mc-title sm">' + sub.name + '</div><div class="mc-sub">' + sub.sub + '</div>' + swapArt(sub.id);
}); });

View File

@@ -4752,12 +4752,12 @@ a.skip:focus{left:16px;top:16px}
.apps-grid .app.is-done::after{top:2px} .apps-grid .app.is-done::after{top:2px}
/* ================= 孕周开放门槛(2026-10-11)================= /* ================= 孕周开放门槛(2026-10-11)=================
没到孕周的工具:宫格和首页工具卡上挂一枚「16周+」浅色角标,图标略淡;点了弹 #modalStageGate。 没到孕周的工具:记一下宫格里图标下沿挂一枚「16周后开放」浅色角标,图标略淡;点了弹 #modalStageGate。
配色只用现有的暖米 / 品牌橘,不另起颜色:角标是米底灰字,进度条是品牌橘渐变。 */ 配色只用现有的暖米 / 品牌橘,不另起颜色:角标是米底灰字,进度条是品牌橘渐变。 */
.apps-grid .app.is-locked .a-ico{opacity:.5;filter:saturate(.6)} .apps-grid .app.is-locked .a-ico{opacity:.5;filter:saturate(.6)}
.apps-grid .app.is-locked .a-n{color:var(--muted)} .apps-grid .app.is-locked .a-n{color:var(--muted)}
.apps-grid .app.is-locked::after{content:attr(data-lock);position:absolute;top:-2px;left:calc(50% + 12px); .apps-grid .app.is-locked::after{content:attr(data-lock);position:absolute;top:36px;left:50%;transform:translateX(-50%);
padding:1px 5px;border-radius:7px;background:#F3E7DF;color:#9A7E70;font-size:9px;font-weight:800;line-height:14px; padding:0 6px;border-radius:7px;background:#F3E7DF;color:#9A7E70;font-size:9.5px;font-weight:800;line-height:15px;
box-shadow:0 0 0 2px #FAF5F1;white-space:nowrap} box-shadow:0 0 0 2px #FAF5F1;white-space:nowrap}
.mini-card.is-locked::after{content:attr(data-lock);position:absolute;top:9px;right:9px; .mini-card.is-locked::after{content:attr(data-lock);position:absolute;top:9px;right:9px;
padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.72);color:#9A7E70;font-size:10px;font-weight:800;line-height:16px} padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.72);color:#9A7E70;font-size:10px;font-weight:800;line-height:16px}