From 96affeb0a6bc4c92e1ac5d115403aaedef8aa348 Mon Sep 17 00:00:00 2001 From: dekun Date: Tue, 2 Jun 2026 15:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A1=8C=E6=83=85=E5=8C=BA?= =?UTF-8?q?=2015m=20=E5=91=A8=E6=9C=9F=E5=BF=AB=E6=8D=B7=E9=94=AE=E4=B8=8E?= =?UTF-8?q?=E5=85=A8=E5=B1=8F=20F=20=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 数字 1 不再立即切 1m,支持连按 15/1440/10080 - 新增 F 键全屏,捕获阶段监听 Ctrl+空格 Co-authored-by: Cursor --- manual_trading_hub/static/chart.js | 36 ++++++++++++++++------------ manual_trading_hub/static/index.html | 6 ++--- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/manual_trading_hub/static/chart.js b/manual_trading_hub/static/chart.js index 87af65c..640fea2 100644 --- a/manual_trading_hub/static/chart.js +++ b/manual_trading_hub/static/chart.js @@ -701,10 +701,16 @@ function canExtendTfDigitBuffer(buf) { if (!buf) return false; return TF_MINUTE_KEYS.some(function (k) { - return k.indexOf(buf) === 0; + return k.length > buf.length && k.indexOf(buf) === 0; }); } + function shouldCommitTfBufferNow(buf) { + const tf = resolveTfFromDigitBuffer(buf); + if (!tf) return false; + return !canExtendTfDigitBuffer(buf); + } + function resolveTfFromDigitBuffer(buf) { if (!buf) return null; return TF_BY_MINUTES[buf] || null; @@ -774,15 +780,13 @@ tfDigitBuf = ""; } tfDigitBuf += digit; - const immediate = resolveTfFromDigitBuffer(tfDigitBuf); - if (immediate) { + if (shouldCommitTfBufferNow(tfDigitBuf)) { commitTfDigitBuffer(); return; } if (!canExtendTfDigitBuffer(tfDigitBuf)) { tfDigitBuf = digit; - const again = resolveTfFromDigitBuffer(tfDigitBuf); - if (again) { + if (shouldCommitTfBufferNow(tfDigitBuf)) { commitTfDigitBuffer(); return; } @@ -791,14 +795,13 @@ tfDigitTimer = setTimeout(commitTfDigitBuffer, TF_DIGIT_TIMEOUT_MS); } - function isFullscreenShortcut(e) { - return ( - e.ctrlKey && - !e.altKey && - !e.metaKey && - !e.shiftKey && - (e.code === "Space" || e.key === " " || e.key === "Spacebar") - ); + function isChartFullscreenShortcut(e) { + if (e.altKey || e.metaKey) return false; + const isSpace = + e.code === "Space" || e.key === " " || e.key === "Spacebar"; + if (isSpace && e.ctrlKey) return true; + if ((e.key === "f" || e.key === "F") && !e.ctrlKey && !e.shiftKey) return true; + return false; } function onMarketKeydown(e) { @@ -806,12 +809,15 @@ if (e.key === "Escape" && chartFullscreen) { e.preventDefault(); + e.stopPropagation(); setChartFullscreen(false); return; } - if (isFullscreenShortcut(e)) { + if (isChartFullscreenShortcut(e)) { + if (isTypingInField(e.target) && (e.key === "f" || e.key === "F")) return; e.preventDefault(); + e.stopPropagation(); toggleChartFullscreen(); return; } @@ -1597,7 +1603,7 @@ updateIndicators(); }); }); - document.addEventListener("keydown", onMarketKeydown); + window.addEventListener("keydown", onMarketKeydown, true); if (elFsExchange) { elFsExchange.addEventListener("change", function () { syncMainFromFsToolbar(); diff --git a/manual_trading_hub/static/index.html b/manual_trading_hub/static/index.html index 7e44996..fdbca84 100644 --- a/manual_trading_hub/static/index.html +++ b/manual_trading_hub/static/index.html @@ -60,7 +60,7 @@ - +
@@ -240,7 +240,7 @@
- +