fix(risk): reset badge to normal when freeze countdown expires

Also expand account-risk-cooldown docs with countdown format, API fields, and frontend assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-18 17:47:47 +08:00
parent 97370926d6
commit f8e760961e
7 changed files with 68 additions and 26 deletions
+14 -3
View File
@@ -29,13 +29,24 @@
return cd ? `${label} · ${cd}` : label;
}
function setNormalBadge(el) {
el.className = "risk-status-badge risk-status-normal";
el.dataset.statusLabel = "正常";
el.textContent = "正常";
el.title = "";
if (el.dataset) delete el.dataset.freezeUntilMs;
}
function refreshElement(el) {
if (!el) return;
const label = baseLabel(null, el);
const until = Number(el.dataset && el.dataset.freezeUntilMs);
if (!Number.isFinite(until) || until <= Date.now()) {
el.textContent = label;
if (el.dataset) delete el.dataset.freezeUntilMs;
if (el.dataset && el.dataset.freezeUntilMs) {
setNormalBadge(el);
} else {
el.textContent = label;
}
return;
}
const cd = formatRemaining((until - Date.now()) / 1000);
@@ -47,7 +58,7 @@
const st = riskStatus.status || "normal";
el.className = "risk-status-badge risk-status-" + st;
el.dataset.statusLabel = baseLabel(riskStatus, el);
if (riskStatus.freeze_until_ms) {
if (riskStatus.freeze_until_ms != null && riskStatus.freeze_until_ms !== "") {
el.dataset.freezeUntilMs = String(riskStatus.freeze_until_ms);
} else if (el.dataset) {
delete el.dataset.freezeUntilMs;