K 线图表 —
+交易记录
+交易日历
+ +当日交易
+ +点击日历中的日期,在下方查看当日交易记录.
+diff --git a/manual_trading_hub/static/app.css b/manual_trading_hub/static/app.css index 4fbefe9..a070160 100644 --- a/manual_trading_hub/static/app.css +++ b/manual_trading_hub/static/app.css @@ -8741,8 +8741,41 @@ body.funds-fullscreen-open { font-size: 0.76rem; color: var(--muted); } +.archive-calendar-day-trades { + margin-top: 12px; + border-top: 1px solid var(--border-soft); + padding-top: 12px; + display: flex; + flex-direction: column; + gap: 8px; +} +.archive-calendar-day-trades .archive-panel-head h3 { + margin: 0; + font-size: 0.9rem; +} +.archive-calendar-day-trades-body { + overflow: auto; + max-height: min(360px, 45vh); +} +.archive-chart-section { + display: flex; + flex-direction: column; + gap: 8px; + padding: 10px; + border: 1px solid var(--border-soft); + border-radius: 8px; + background: var(--inset-surface); + margin-bottom: 10px; +} +.archive-chart-section[hidden] { + display: none !important; +} +.archive-chart-title-row { + font-size: 0.78rem; + color: var(--muted); +} .archive-chart-section > :not(summary) { - padding: 0 10px 10px; + padding: 0; } .archive-trades-section { flex: 0 0 auto; diff --git a/manual_trading_hub/static/archive.js b/manual_trading_hub/static/archive.js index 402a8c7..2231372 100644 --- a/manual_trading_hub/static/archive.js +++ b/manual_trading_hub/static/archive.js @@ -43,6 +43,9 @@ const elQuoteDayTradesBody = document.getElementById("archive-quote-day-trades-body"); const elChartSection = document.getElementById("archive-chart-section"); const elChartTitle = document.getElementById("archive-chart-title"); + const elBtnChartClose = document.getElementById("archive-btn-chart-close"); + const elCalDayTradesMeta = document.getElementById("archive-calendar-day-trades-meta"); + const elCalDayTradesBody = document.getElementById("archive-calendar-day-trades-body"); const elTfTabs = document.getElementById("archive-tf-tabs"); const elViewMode = document.getElementById("archive-view-mode"); const elJumpAt = document.getElementById("archive-jump-at"); @@ -324,7 +327,7 @@ } function isChartOpen() { - return !!(elChartSection && elChartSection.open); + return !!(elChartSection && !elChartSection.hidden); } function syncTradesLayout() { @@ -346,12 +349,16 @@ function setChartOpen(on) { if (!elChartSection) return; - elChartSection.open = !!on; + const want = !!on; + elChartSection.hidden = !want; if (elBtnChartToggle) { - elBtnChartToggle.classList.toggle("is-active", !!on); + elBtnChartToggle.classList.toggle("is-active", want); + } + if (want && archiveContentTab !== "trades") { + setArchiveContentTab("trades"); } syncTradesLayout(); - if (!on) { + if (!want) { destroyChart(); return; } @@ -561,7 +568,6 @@ if (elQuoteDate) elQuoteDate.value = day; if (elFilterSick) elFilterSick.checked = false; syncPeriodUI(); - setArchiveContentTab("trades"); void loadDailyTrades(); }, }); @@ -999,6 +1005,7 @@ void loadQuoteDayTrades(); } else if (next === "calendar") { void loadCalendar(); + renderCalendarDayTrades(); } else if (next === "trades") { requestAnimationFrame(syncTradesLayout); } @@ -1714,6 +1721,75 @@ await switchToTrade(tr); } + function renderCalendarDayTrades() { + if (!elCalDayTradesBody) return; + const day = + selectedCalendarDay || + (periodMode === "today" && tradingDay) || + (elTradingDay && elTradingDay.value) || + ""; + if (elCalDayTradesMeta) { + elCalDayTradesMeta.textContent = + periodMode === "today" && day ? day + " · " + dailyTrades.length + " 笔" : ""; + } + if (periodMode !== "today" || !day) { + elCalDayTradesBody.innerHTML = + '
点击日历中的日期,在下方查看当日交易记录.
'; + return; + } + if (!dailyTrades.length) { + elCalDayTradesBody.innerHTML = + '该日暂无交易记录.
'; + return; + } + elCalDayTradesBody.innerHTML = + '| 交易所 | 合约 | 方向 | 开仓 | 平仓 | 盈亏 | 标签 | " + + " |
|---|---|---|---|---|---|---|---|
| " + + esc(tradeRowExchange(t)) + + " | " + + "" + + esc(t.symbol || "—") + + " | " + + "" + + esc(t.direction || "—") + + " | " + + '' + + fmtDt(t.opened_at) + + " | " + + '' + + fmtDt(t.closed_at) + + " | " + + '' + + fmtPnl(t.pnl_amount) + + " | " + + "" + + esc(tag) + + " | " + + '