v26110253 测试类页面记住最后停留的页面(开始/答题第几题/结果):生娃计算器、5 个专题测试、广场测一测

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
deploy
2026-11-03 06:21:55 +00:00
parent 5d8335a9d5
commit 0f79ddcffb
14 changed files with 135 additions and 30 deletions

View File

@@ -749,7 +749,11 @@ h1 .mk{background:linear-gradient(transparent 64%,rgba(24,160,88,.24) 0)}
}
/* ================= 屏切换 ================= */
/* 11-03 用户:「点重新测试回到开始页,退回首页再进来,显示的还是账单」→ 记住最后停在哪一屏(开始 / 第几题 / 账单),再进来回到那一屏 */
var scr = 'sStart', booting = true;
function show(id) {
scr = id;
if (!booting) save();
[].forEach.call(document.querySelectorAll('.screen'), function (el) { el.classList.toggle('on', el.id === id); });
$('#bgTop').style.display = id === 'sQ' ? 'none' : '';
sc.scrollTop = 0;
@@ -1235,15 +1239,21 @@ h1 .mk{background:linear-gradient(transparent 64%,rgba(24,160,88,.24) 0)}
});
}
$('#reTest').addEventListener('click', function () { route = -1; A = {}; cur = 0; renderStart(); show('sStart'); });
/* 重新测试 = 这份账单作废:清掉「看上次的账单」,存成停在开始页 */
$('#reTest').addEventListener('click', function () { route = -1; A = {}; cur = 0; hasBill = false; billNo = ''; billAt = ''; renderStart(); show('sStart'); });
/* ================= 存取(v5;兼容读取 v4:路线 + 6 题答案,阶段按全部、收入为空) ================= */
function save() {
try { localStorage.setItem(KEY, JSON.stringify({ route: route, rid: ROUTES[route].id, a: A, done: hasBill, no: billNo, at: billAt })); } catch (e) {}
try {
localStorage.setItem(KEY, JSON.stringify(route < 0 ? { scr: 'sStart', done: false } /* 没选路线(重新测试后):只记停在开始页 */
: { route: route, rid: ROUTES[route].id, a: A, done: hasBill, no: billNo, at: billAt, scr: scr, cur: cur }));
} catch (e) {}
}
var lastScr = '', lastCur = 0;
function load() {
try {
var o = JSON.parse(localStorage.getItem(KEY) || 'null') || JSON.parse(localStorage.getItem(KEY4) || 'null');
if (o) { lastScr = o.scr || ''; lastCur = +o.cur || 0; }
if (o && !o.rid && o.route >= 0) o.rid = ['rich', 'mid', 'low'][o.route]; /* 旧记录是旧顺序(富豪在前),按 id 换算 */
var ri = o ? ROUTES.map(function (x) { return x.id; }).indexOf(o.rid) : -1;
if (ri < 0) return false;
@@ -1263,7 +1273,11 @@ h1 .mk{background:linear-gradient(transparent 64%,rgba(24,160,88,.24) 0)}
hasBill = load();
renderStart();
if (hasBill) renderRes(false); else show('sStart');
/* 回到上次停的那一屏;旧记录没有 scr:有账单就看账单(原行为) */
if (lastScr === 'sQ' && route >= 0) { cur = Math.max(0, Math.min(lastCur, flow().length - 1)); renderQ(); }
else if (lastScr === 'sStart' || !hasBill) show('sStart');
else renderRes(false);
booting = false;
/* 返回:从首页点进来就 back;直接打开(分享 / 刷新)就回同目录的首页,身份原样带回 */
$('#back').addEventListener('click', function () {