fix: 滚仓字段显隐与浅色模式样式
市价加仓默认隐藏上沿/下沿/突破价(CSS+JS);说明页与预估风险条适配浅色主题。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1281,3 +1281,274 @@ html[data-theme="light"] .detail-actions {
|
||||
border-top-color: #d0dae4 !important;
|
||||
}
|
||||
|
||||
/* ── 顺势加仓:表单字段按模式显隐(CSS 兜底,不依赖 JS)── */
|
||||
#roll-form[data-add-mode="market"] .roll-field-fib,
|
||||
#roll-form[data-add-mode="market"] .roll-field-breakout {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#roll-form[data-add-mode="fib_618"] .roll-field-breakout,
|
||||
#roll-form[data-add-mode="fib_786"] .roll-field-breakout {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#roll-form[data-add-mode="breakout"] .roll-field-fib {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#roll-form[data-add-mode="fib_618"] .roll-field-fib,
|
||||
#roll-form[data-add-mode="fib_786"] .roll-field-fib,
|
||||
#roll-form[data-add-mode="breakout"] .roll-field-breakout {
|
||||
display: inline-flex !important;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.roll-field[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#strategy-roll-panel .roll-risk-banner {
|
||||
margin-bottom: 8px;
|
||||
color: #8fc8ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] #strategy-roll-panel .roll-risk-banner {
|
||||
color: #006e9a !important;
|
||||
}
|
||||
|
||||
#strategy-roll-panel .roll-doc-link {
|
||||
color: #8fc8ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] #strategy-roll-panel .roll-doc-link {
|
||||
color: #006e9a !important;
|
||||
}
|
||||
|
||||
#strategy-roll-panel .roll-section-title {
|
||||
margin: 14px 0 8px;
|
||||
font-size: 0.95rem;
|
||||
color: #b8c4ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] #strategy-roll-panel .roll-section-title {
|
||||
color: #006e9a !important;
|
||||
}
|
||||
|
||||
#roll-preview-box.roll-preview-box {
|
||||
margin: 8px 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #3a5a8a;
|
||||
border-radius: 8px;
|
||||
background: #141a28;
|
||||
color: #dde2ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] #roll-preview-box.roll-preview-box {
|
||||
background: #f6f9fc !important;
|
||||
border-color: #b8c8d8 !important;
|
||||
color: #1a2838 !important;
|
||||
}
|
||||
|
||||
#roll-countdown.roll-countdown {
|
||||
margin-top: 6px;
|
||||
color: #ffb347;
|
||||
}
|
||||
|
||||
html[data-theme="light"] #roll-countdown.roll-countdown {
|
||||
color: #a06010 !important;
|
||||
}
|
||||
|
||||
/* ── 顺势加仓说明页 ── */
|
||||
body.roll-doc-page {
|
||||
font-family: system-ui, sans-serif;
|
||||
margin: 0;
|
||||
padding: 16px;
|
||||
background: #0f1117;
|
||||
color: #e6e8ef;
|
||||
}
|
||||
|
||||
html[data-theme="light"] body.roll-doc-page {
|
||||
background: #eef3f8 !important;
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-container {
|
||||
max-width: 920px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.roll-doc-nav {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
.roll-doc-nav a {
|
||||
color: #8fc8ff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-nav a {
|
||||
color: #006e9a !important;
|
||||
}
|
||||
|
||||
.roll-doc-body {
|
||||
background: #151a2a;
|
||||
border: 1px solid #2a3150;
|
||||
border-radius: 10px;
|
||||
padding: 18px 20px;
|
||||
line-height: 1.65;
|
||||
font-size: 0.92rem;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body {
|
||||
background: #fff !important;
|
||||
border-color: #b8c8d8 !important;
|
||||
color: #1a2838 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body h1 {
|
||||
font-size: 1.35rem;
|
||||
margin: 0 0 12px;
|
||||
color: #f0f2ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body h1 {
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body h2 {
|
||||
font-size: 1.08rem;
|
||||
margin: 22px 0 10px;
|
||||
color: #b8c4ff;
|
||||
border-bottom: 1px solid #2a3150;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body h2 {
|
||||
color: #006e9a !important;
|
||||
border-bottom-color: #d0dae4 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body h3 {
|
||||
font-size: 0.98rem;
|
||||
margin: 16px 0 8px;
|
||||
color: #c9d4ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body h3 {
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body p,
|
||||
.roll-doc-body li {
|
||||
color: #dde2ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body p,
|
||||
html[data-theme="light"] .roll-doc-body li {
|
||||
color: #1a2838 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body ul,
|
||||
.roll-doc-body ol {
|
||||
margin: 8px 0 12px 1.25em;
|
||||
}
|
||||
|
||||
.roll-doc-body code {
|
||||
background: #252538;
|
||||
padding: 1px 5px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.88em;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body code {
|
||||
background: #e8eef5 !important;
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body pre {
|
||||
background: #0f1420;
|
||||
border: 1px solid #2a3150;
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
overflow: auto;
|
||||
font-size: 0.84rem;
|
||||
line-height: 1.5;
|
||||
color: #dde2ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body pre {
|
||||
background: #f6f9fc !important;
|
||||
border-color: #b8c8d8 !important;
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body pre code {
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.roll-doc-body table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 10px 0;
|
||||
font-size: 0.86rem;
|
||||
}
|
||||
|
||||
.roll-doc-body th,
|
||||
.roll-doc-body td {
|
||||
border: 1px solid #2a3150;
|
||||
padding: 6px 8px;
|
||||
text-align: left;
|
||||
color: #dde2ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body th,
|
||||
html[data-theme="light"] .roll-doc-body td {
|
||||
border-color: #b8c8d8 !important;
|
||||
color: #1a2838 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body th {
|
||||
background: #1a2030;
|
||||
color: #b8c4ff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body th {
|
||||
background: #e8eef5 !important;
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
.roll-doc-body hr {
|
||||
border: none;
|
||||
border-top: 1px solid #2a3150;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .roll-doc-body hr {
|
||||
border-top-color: #d0dae4 !important;
|
||||
}
|
||||
|
||||
/* ── 实盘下单:预估风险/盈利/盈亏比条 ── */
|
||||
html[data-theme="light"] .order-plan-preview {
|
||||
background: #f6f9fc !important;
|
||||
border-color: #b8c8d8 !important;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .order-preview-rr {
|
||||
color: #4a6078 !important;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .order-preview-rr strong {
|
||||
color: #142232 !important;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .order-preview-risk strong {
|
||||
color: #b03030 !important;
|
||||
}
|
||||
|
||||
html[data-theme="light"] .order-preview-profit strong {
|
||||
color: #087a50 !important;
|
||||
}
|
||||
|
||||
|
||||
+32
-26
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user