From 4d88f3de51130d25dda0904f1be4eba38d670679 Mon Sep 17 00:00:00 2001 From: xxm Date: Tue, 18 Aug 2026 08:37:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E5=A4=87=E9=80=89=E5=8C=BA?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E6=8C=81=E4=B9=85=E5=8C=96(localStorage=20bk?= =?UTF-8?q?=5Fopen=5F+=5FbkAttr=E6=81=A2=E5=A4=8D+=E7=AE=AD=E5=A4=B4)?= =?UTF-8?q?=E2=80=94=E2=80=94=E5=88=B7=E6=96=B0=E4=BF=9D=E7=95=99=E5=B1=95?= =?UTF-8?q?=E5=BC=80=E7=8A=B6=E6=80=81(=E6=AD=A4=E5=89=8Dassert=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=9C=AA=E7=94=9F=E6=95=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/index.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/static/index.html b/static/index.html index 7dfe39a7..01246398 100644 --- a/static/index.html +++ b/static/index.html @@ -2766,7 +2766,8 @@ const renderRegimeRow = (s, rg, bkKey) => { const rGradeBadge = rGrade && rGrade !== 'ok' && rGrade !== 'good' && rGrade !== 'great' ? '' : ''; // 2026-08-18 按温区判定激活(而非全局 s.current)——该策略在当前表温区 rg 是否激活 const isActive = window._isActRegime(s, rg); - const _bkAttr = bkKey ? ' data-bk="' + bkKey + '" class="hidden"' : ''; + // 2026-08-18 展开持久化:读 localStorage 决定备选行是否 hidden(非总是折叠) + const _bkAttr = bkKey ? ' data-bk="' + bkKey + '"' + (window._bkOpen(bkKey) ? '' : ' class="hidden"') : ''; return '' + '' + s.version + ' ' + rStateBadge + ((s.market && s.market !== 'all') ? ' ' + (s.market === 'hk' ? '港' : 'A') + '' : '') + '' + '' + (s.name || '') + (smallSample ? ' ⚠️' : '') + ' ' + @@ -2882,7 +2883,7 @@ const renderRegimeRow = (s, rg, bkKey) => { if (backup.length) { html += '' + ''; + '' + (window._bkOpen(marketLabel + rg) ? '\u25bc' : '\u25b6') + ' 备选 (资格达标未激活, ' + backup.length + ') 点击展开'; // 2026-08-17 修复:备选行直接进同一 tbody(renderRegimeRow 传 bkKey, 行加 data-bk+hidden),列宽与表头对齐 html += backup.map(s => renderRegimeRow(s, rg, marketLabel + rg)).join(''); } @@ -2898,7 +2899,10 @@ const renderRegimeRow = (s, rg, bkKey) => { const hidden = rows[0].classList.contains('hidden'); rows.forEach(r => r.classList.toggle('hidden')); if (arrow) arrow.textContent = hidden ? '\u25bc' : '\u25b6'; + // 2026-08-18 展开状态持久化(刷新保留) + try { localStorage.setItem('bk_open_' + key, hidden ? '1' : '0'); } catch(e) {} }; + window._bkOpen = function(key) { try { return localStorage.getItem('bk_open_' + key) === '1'; } catch(e) { return false; } }; // ── 2026-08-15 按市场×温区展示:6表格 = A股当前市 → 港股当前市 → A股其他2市 → 港股其他2市, // 每表格列出该市场在该温区有数据的所有可用策略(含未激活,按该温区胜率降序),激活策略高亮;温度并入当前市标题尾部 const usableStrats = strategies.filter(s => s.current === true || s.state === 'available');