diff --git a/crypto_monitor_binance/templates/index.html b/crypto_monitor_binance/templates/index.html index 3c1dcb4..ccb96c1 100644 --- a/crypto_monitor_binance/templates/index.html +++ b/crypto_monitor_binance/templates/index.html @@ -834,7 +834,7 @@ - + - + - + - + - + {% include 'embed_boot_scripts.html' %} diff --git a/static/strategy_roll.js b/static/strategy_roll.js index 85779e8..fddaa01 100644 --- a/static/strategy_roll.js +++ b/static/strategy_roll.js @@ -32,6 +32,8 @@ const form = document.getElementById("roll-form"); if (!form) return; + if (form.dataset.rollJsInit === "1") return; + form.dataset.rollJsInit = "1"; const symbolSel = document.getElementById("roll-symbol"); const dirInput = document.getElementById("roll-direction"); @@ -47,7 +49,7 @@ let countdownTimer = null; let previewOk = false; let lastPreviewMode = ""; - let allowMonitorSubmit = false; + let monitorSubmitting = false; function isMarketMode() { return (modeSel.value || "market") === "market"; @@ -99,6 +101,7 @@ previewBox.classList.add("is-error"); previewText.textContent = msg || "无法执行"; if (countdownEl) countdownEl.style.display = "none"; + previewBox.scrollIntoView({ behavior: "smooth", block: "nearest" }); } function showPreviewResult(p) { @@ -133,7 +136,7 @@ function resetPreview() { previewOk = false; - allowMonitorSubmit = false; + monitorSubmitting = false; clearMessageBox(); if (countdownTimer) { clearInterval(countdownTimer); @@ -193,13 +196,16 @@ } function runMonitorSubmit() { + if (monitorSubmitting) return; if (!symbolSel.value) { showReject("请先选择持仓币种"); return; } + monitorSubmitting = true; if (submitBtn) submitBtn.disabled = true; requestPreview() .then(function (data) { + monitorSubmitting = false; if (submitBtn && !trendLocked) submitBtn.disabled = false; if (!data.ok) { showReject(data.msg || "无法提交监控"); @@ -217,10 +223,10 @@ if (!confirm("确认提交「" + modeLabel + "」?\n" + summary)) { return; } - allowMonitorSubmit = true; - form.requestSubmit(); + form.submit(); }) .catch(function () { + monitorSubmitting = false; if (submitBtn && !trendLocked) submitBtn.disabled = false; showReject("校验请求失败,请稍后重试"); }); @@ -258,10 +264,6 @@ if (previewBtn) previewBtn.addEventListener("click", runPreview); form.addEventListener("submit", function (e) { if (isMonitorMode()) { - if (allowMonitorSubmit) { - allowMonitorSubmit = false; - return; - } e.preventDefault(); runMonitorSubmit(); return; diff --git a/strategy_templates/strategy_roll.html b/strategy_templates/strategy_roll.html index 1c12d93..fa3509a 100644 --- a/strategy_templates/strategy_roll.html +++ b/strategy_templates/strategy_roll.html @@ -14,5 +14,6 @@ {% include 'strategy_roll_panel.html' %}
+