fix: 滚仓字段显隐与浅色模式样式

市价加仓默认隐藏上沿/下沿/突破价(CSS+JS);说明页与预估风险条适配浅色主题。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-26 22:11:58 +08:00
parent d467760d5c
commit 7d03e8e93e
9 changed files with 328 additions and 64 deletions
+32 -26
View File
@@ -13,15 +13,16 @@
const previewBox = document.getElementById("roll-preview-box");
const previewText = document.getElementById("roll-preview-text");
const countdownEl = document.getElementById("roll-countdown");
const fibWrap = form.querySelector(".roll-field-fib");
const breakoutWrap = form.querySelector(".roll-field-breakout");
const fibUpper = document.getElementById("roll-fib-upper");
const fibLower = document.getElementById("roll-fib-lower");
const breakoutInput = document.getElementById("roll-breakout");
let countdownTimer = null;
let previewOk = false;
let lastPreviewMode = "";
function qs(sel) {
return form.querySelector(sel);
}
function selectedOption() {
return symbolSel.options[symbolSel.selectedIndex];
}
@@ -35,31 +36,36 @@
const dir = opt.getAttribute("data-direction") || "long";
const rp = opt.getAttribute("data-risk-percent") || "—";
dirInput.value = dir;
riskBanner.textContent = "当前风险:" + rp + "%(来自监控单 #" + (opt.getAttribute("data-monitor-id") || "?") + "";
riskBanner.textContent =
"当前风险:" + rp + "%(来自监控单 #" + (opt.getAttribute("data-monitor-id") || "?") + "";
}
function setFieldGroup(wrap, inputs, visible, required) {
if (!wrap) return;
wrap.hidden = !visible;
inputs.forEach(function (inp) {
if (!inp) return;
inp.disabled = !visible;
inp.required = !!required && visible;
if (!visible) inp.value = "";
});
}
function syncFieldVisibility() {
const mode = modeSel.value;
form.querySelectorAll(".roll-field-fib").forEach(function (el) {
el.style.display = mode === "fib_618" || mode === "fib_786" ? "inline-flex" : "none";
});
form.querySelectorAll(".roll-field-breakout").forEach(function (el) {
el.style.display = mode === "breakout" ? "inline-flex" : "none";
});
const fibInputs = [qs("#roll-fib-upper"), qs("#roll-fib-lower")];
const bpInput = qs("#roll-breakout");
fibInputs.forEach(function (inp) {
if (inp) inp.required = mode === "fib_618" || mode === "fib_786";
});
if (bpInput) bpInput.required = mode === "breakout";
const mode = modeSel.value || "market";
form.setAttribute("data-add-mode", mode);
const showFib = mode === "fib_618" || mode === "fib_786";
const showBreakout = mode === "breakout";
setFieldGroup(fibWrap, [fibUpper, fibLower], showFib, showFib);
setFieldGroup(breakoutWrap, [breakoutInput], showBreakout, showBreakout);
resetPreview();
}
function resetPreview() {
previewOk = false;
submitBtn.disabled = true;
previewBox.style.display = "none";
countdownEl.style.display = "none";
if (submitBtn) submitBtn.disabled = true;
if (previewBox) previewBox.style.display = "none";
if (countdownEl) countdownEl.style.display = "none";
if (countdownTimer) {
clearInterval(countdownTimer);
countdownTimer = null;
@@ -70,7 +76,7 @@
const fd = new FormData(form);
const obj = {};
fd.forEach(function (v, k) {
obj[k] = v;
if (v !== "") obj[k] = v;
});
return obj;
}
@@ -121,7 +127,7 @@
previewOk = true;
if (lastPreviewMode === "market") {
startCountdown(10);
} else {
} else if (submitBtn) {
submitBtn.disabled = false;
countdownEl.style.display = "none";
}
@@ -134,7 +140,7 @@
function startCountdown(sec) {
let left = sec;
submitBtn.disabled = true;
if (submitBtn) submitBtn.disabled = true;
countdownEl.style.display = "block";
countdownEl.textContent = "市价加仓:" + left + " 秒后可执行(可取消刷新预览)";
countdownTimer = setInterval(function () {
@@ -143,7 +149,7 @@
clearInterval(countdownTimer);
countdownTimer = null;
countdownEl.textContent = "可以执行市价加仓";
submitBtn.disabled = false;
if (submitBtn) submitBtn.disabled = false;
return;
}
countdownEl.textContent = "市价加仓:" + left + " 秒后可执行";
@@ -166,7 +172,7 @@
alert("请先点击预览");
return;
}
if (lastPreviewMode === "market" && submitBtn.disabled) {
if (lastPreviewMode === "market" && submitBtn && submitBtn.disabled) {
e.preventDefault();
alert("请等待 10 秒确认倒计时结束");
return;