diff --git a/static/index.html b/static/index.html index 248cd2e6..0d56bf7f 100644 --- a/static/index.html +++ b/static/index.html @@ -2541,16 +2541,16 @@ function renderStrategyTable(strategies) { const ddV = rwPf ? rwPf.portfolio_max_dd_pct : null; const univ = rw.universality ? rw.universality.score : null; const univM = rw.universality ? (rw.universality.months + '/' + (rw.universality.regime_total_months || '?')) : null; - // ── 2026-08-16 行状态按【该表温区 rg】独立判定(老莫反复强调:每温区表显示该温区下的资格状态)── + // ── 2026-08-16 行状态按【该表温区 rg】独立判定(老莫反复强调)── const qg = (s.qualification || {})[rg]; const rLong = qg && qg.long_ok, rMid = qg && qg.mid_ok, rShort = qg && qg.short_ok; const r3 = rLong && rMid && rShort; // 三项全过 - const r2 = rLong && rMid; // 长期+近期 + const rNearOk = rMid || rShort; // 近期有亮点(含长期不过但近期过:❌❌✅/❌✅✅) const rManual = s.manual_available !== false; let rState, rStateCls, rStateBadge, rRowBg; if (!rManual) { rState = 'manual_off'; rStateCls = 'text-slate-500'; rStateBadge = '手动停用'; rRowBg = 'opacity-50'; } else if (r3) { rState = 'ok3'; rStateCls = 'text-emerald-400'; rStateBadge = '可激活'; rRowBg = 'bg-emerald-900/10'; } - else if (r2) { rState = 'ok2'; rStateCls = 'text-blue-400'; rStateBadge = '可用'; rRowBg = ''; } + else if (rNearOk) { rState = 'ok2'; rStateCls = 'text-blue-400'; rStateBadge = '可用'; rRowBg = ''; } else { rState = 'bad'; rStateCls = 'text-red-400/80'; rStateBadge = '不合格'; rRowBg = 'opacity-60'; } const isActive = rState === 'ok3'; return '' +