From 5f79a62b13d4617542abf41af1d0243fecc6dcb5 Mon Sep 17 00:00:00 2001 From: dekun Date: Thu, 11 Jun 2026 18:01:52 +0800 Subject: [PATCH] fix(hub): sick trade rows use red text only, widen AI history MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove red background on 犯病 archive rows; fix AI markdown ordered lists; widen chat history sidebar. --- manual_trading_hub/static/app.css | 40 ++++++++++++++++-------- manual_trading_hub/static/index.html | 4 +-- static/ai_review_render.js | 46 ++++++++++++++++++++++++++-- 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/manual_trading_hub/static/app.css b/manual_trading_hub/static/app.css index 8dd21e2..f62fa6c 100644 --- a/manual_trading_hub/static/app.css +++ b/manual_trading_hub/static/app.css @@ -4321,11 +4321,19 @@ body.hub-page-ai #page-ai { .ai-result-md ul, .ai-result-md ol { margin: 6px 0 8px 1.25em; - padding: 0; + padding: 0 0 0 0.25em; + list-style-position: outside; +} +.ai-result-md ul { + list-style-type: disc; +} +.ai-result-md ol { + list-style-type: decimal; } .ai-result-md li { margin: 5px 0; line-height: 1.5; + display: list-item; } .ai-result-md strong { color: var(--text); @@ -4413,6 +4421,17 @@ body.hub-page-ai #page-ai { .ai-bubble-assistant.ai-result-md ul, .ai-bubble-assistant.ai-result-md ol { margin: 4px 0 6px 1.15em; + padding-left: 0.25em; + list-style-position: outside; +} +.ai-bubble-assistant.ai-result-md ul { + list-style-type: disc; +} +.ai-bubble-assistant.ai-result-md ol { + list-style-type: decimal; +} +.ai-bubble-assistant.ai-result-md li { + display: list-item; } .ai-ac-table-wrap { margin: 8px 0 12px; @@ -4541,7 +4560,7 @@ body.hub-page-ai #page-ai { flex: 1 1 auto; min-height: 0; display: grid; - grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); + grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: 0; overflow: hidden; border: 1px solid var(--border-soft); @@ -5700,25 +5719,20 @@ body.funds-fullscreen-open { .archive-trade-row.is-active { background: var(--inset-surface); } -.archive-trade-row.archive-trade-sick { - background: rgba(220, 38, 38, 0.3); +.archive-trade-row.archive-trade-sick td { + color: var(--red); } .archive-trade-row.archive-trade-sick.is-active { - background: rgba(220, 38, 38, 0.38); -} -.archive-trade-row.archive-trade-sick td { - color: var(--accent); - border-bottom-color: rgba(220, 38, 38, 0.4); + background: var(--inset-surface); } .archive-trade-row.archive-trade-sick .archive-tag-select, .archive-trade-row.archive-trade-sick .archive-note-input { - color: var(--accent); - background: rgba(0, 0, 0, 0.2); - border-color: color-mix(in srgb, var(--accent) 50%, var(--border-soft)); + color: var(--red); + border-color: color-mix(in srgb, var(--red) 40%, var(--border-soft)); } .archive-trade-row.archive-trade-sick td.pos, .archive-trade-row.archive-trade-sick td.neg { - color: var(--accent); + color: var(--red); } .archive-actions-cell { white-space: nowrap; diff --git a/manual_trading_hub/static/index.html b/manual_trading_hub/static/index.html index c4100f6..7e69576 100644 --- a/manual_trading_hub/static/index.html +++ b/manual_trading_hub/static/index.html @@ -15,7 +15,7 @@ - + @@ -576,7 +576,7 @@ - + diff --git a/static/ai_review_render.js b/static/ai_review_render.js index 845bcb1..b32c375 100644 --- a/static/ai_review_render.js +++ b/static/ai_review_render.js @@ -46,8 +46,40 @@ return out; } + function isNumberedListLine(trimmed) { + if (!trimmed) return false; + if (/^\d+\.\s+/.test(trimmed)) return true; + if (/^\*\*\d+\.\s*.+\*\*$/.test(trimmed)) return true; + return false; + } + + /** 编号列表项之间的空行不拆段,避免每条都从 1 重新开始 */ + function preprocessListBlanks(text) { + var lines = String(text || "").replace(/\r\n/g, "\n").split("\n"); + var out = []; + for (var i = 0; i < lines.length; i++) { + var trimmed = lines[i].trim(); + if (!trimmed) { + var prevTrim = out.length ? String(out[out.length - 1]).trim() : ""; + var nextTrim = ""; + for (var j = i + 1; j < lines.length; j++) { + var t = lines[j].trim(); + if (t) { + nextTrim = t; + break; + } + } + if (isNumberedListLine(prevTrim) && isNumberedListLine(nextTrim)) { + continue; + } + } + out.push(lines[i]); + } + return out.join("\n"); + } + function renderMarkdown(text) { - var src = enhanceReviewHeadings(text); + var src = enhanceReviewHeadings(preprocessListBlanks(text)); var lines = src.replace(/\r\n/g, "\n").split("\n"); var html = []; var inUl = false; @@ -88,8 +120,18 @@ html.push("
  • " + parseInline(ulm[1]) + "
  • "); return; } + var boldOl = trimmed.match(/^\*\*(\d+)\.\s*(.+)\*\*$/); + if (boldOl) { + if (!inOl) { + closeLists(); + html.push("
      "); + inOl = true; + } + html.push("
    1. " + parseInline(trimmed) + "
    2. "); + return; + } var olm = trimmed.match(/^\d+\.\s+(.+)$/); - if (olm && !/^\*\*/.test(trimmed)) { + if (olm) { if (!inOl) { closeLists(); html.push("
        ");