fix: 滚仓斐波/突破价输入框可在切换模式后编辑
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -834,7 +834,7 @@
|
|||||||
<script src="/static/ai_review_render.js?v=2"></script>
|
<script src="/static/ai_review_render.js?v=2"></script>
|
||||||
<script src="/static/form_submit_guard.js?v=2"></script>
|
<script src="/static/form_submit_guard.js?v=2"></script>
|
||||||
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
<script>
|
<script>
|
||||||
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
||||||
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
||||||
|
|||||||
@@ -801,7 +801,7 @@
|
|||||||
<script src="/static/ai_review_render.js?v=2"></script>
|
<script src="/static/ai_review_render.js?v=2"></script>
|
||||||
<script src="/static/form_submit_guard.js?v=2"></script>
|
<script src="/static/form_submit_guard.js?v=2"></script>
|
||||||
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
<script>
|
<script>
|
||||||
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
||||||
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
||||||
|
|||||||
@@ -801,7 +801,7 @@
|
|||||||
<script src="/static/ai_review_render.js?v=2"></script>
|
<script src="/static/ai_review_render.js?v=2"></script>
|
||||||
<script src="/static/form_submit_guard.js?v=2"></script>
|
<script src="/static/form_submit_guard.js?v=2"></script>
|
||||||
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
<script>
|
<script>
|
||||||
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
||||||
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
||||||
|
|||||||
@@ -830,7 +830,7 @@
|
|||||||
<script src="/static/ai_review_render.js?v=2"></script>
|
<script src="/static/ai_review_render.js?v=2"></script>
|
||||||
<script src="/static/form_submit_guard.js?v=2"></script>
|
<script src="/static/form_submit_guard.js?v=2"></script>
|
||||||
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
<script>
|
<script>
|
||||||
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
const JOURNAL_ENTRY_REASON_OPTIONS = {{ entry_reason_options | tojson }};
|
||||||
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
const JOURNAL_ENTRY_REASON_OTHER = {{ entry_reason_other_value | tojson }};
|
||||||
|
|||||||
@@ -114,7 +114,7 @@
|
|||||||
<script src="/static/ai_review_render.js?v=2"></script>
|
<script src="/static/ai_review_render.js?v=2"></script>
|
||||||
<script src="/static/form_submit_guard.js?v=2"></script>
|
<script src="/static/form_submit_guard.js?v=2"></script>
|
||||||
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
<script src="/static/manual_order_rr_preview.js?v=4"></script>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
<script src="/static/key_monitor_form.js?v=1"></script>
|
<script src="/static/key_monitor_form.js?v=1"></script>
|
||||||
{% include 'embed_boot_scripts.html' %}
|
{% include 'embed_boot_scripts.html' %}
|
||||||
<script src="/static/instance_embed.js?v=4"></script>
|
<script src="/static/instance_embed.js?v=4"></script>
|
||||||
|
|||||||
@@ -1305,10 +1305,6 @@ html[data-theme="light"] .detail-actions {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.roll-field[hidden] {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#strategy-roll-panel .roll-risk-banner {
|
#strategy-roll-panel .roll-risk-banner {
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
color: #8fc8ff;
|
color: #8fc8ff;
|
||||||
|
|||||||
+30
-22
@@ -1,6 +1,35 @@
|
|||||||
(function () {
|
(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
function syncRollFormMode(form, mode) {
|
||||||
|
if (!form) return;
|
||||||
|
const m = mode || "market";
|
||||||
|
form.setAttribute("data-add-mode", m);
|
||||||
|
const showFib = m === "fib_618" || m === "fib_786";
|
||||||
|
const showBreakout = m === "breakout";
|
||||||
|
const fibWrap = form.querySelector(".roll-field-fib");
|
||||||
|
const breakoutWrap = form.querySelector(".roll-field-breakout");
|
||||||
|
const fibUpper = form.querySelector("#roll-fib-upper");
|
||||||
|
const fibLower = form.querySelector("#roll-fib-lower");
|
||||||
|
const breakoutInput = form.querySelector("#roll-breakout");
|
||||||
|
|
||||||
|
function tuneInput(inp, active, required) {
|
||||||
|
if (!inp) return;
|
||||||
|
inp.disabled = !active;
|
||||||
|
inp.required = !!required && active;
|
||||||
|
inp.tabIndex = active ? 0 : -1;
|
||||||
|
if (!active) inp.value = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fibWrap) fibWrap.setAttribute("aria-hidden", showFib ? "false" : "true");
|
||||||
|
if (breakoutWrap) breakoutWrap.setAttribute("aria-hidden", showBreakout ? "false" : "true");
|
||||||
|
tuneInput(fibUpper, showFib, showFib);
|
||||||
|
tuneInput(fibLower, showFib, showFib);
|
||||||
|
tuneInput(breakoutInput, showBreakout, showBreakout);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.syncRollFormMode = syncRollFormMode;
|
||||||
|
|
||||||
const form = document.getElementById("roll-form");
|
const form = document.getElementById("roll-form");
|
||||||
if (!form) return;
|
if (!form) return;
|
||||||
|
|
||||||
@@ -13,11 +42,6 @@
|
|||||||
const previewBox = document.getElementById("roll-preview-box");
|
const previewBox = document.getElementById("roll-preview-box");
|
||||||
const previewText = document.getElementById("roll-preview-text");
|
const previewText = document.getElementById("roll-preview-text");
|
||||||
const countdownEl = document.getElementById("roll-countdown");
|
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 countdownTimer = null;
|
||||||
let previewOk = false;
|
let previewOk = false;
|
||||||
@@ -40,24 +64,8 @@
|
|||||||
"当前风险:" + rp + "%(来自监控单 #" + (opt.getAttribute("data-monitor-id") || "?") + ")";
|
"当前风险:" + 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() {
|
function syncFieldVisibility() {
|
||||||
const mode = modeSel.value || "market";
|
syncRollFormMode(form, 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();
|
resetPreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,18 +30,18 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<input type="hidden" name="direction" id="roll-direction" value="long">
|
<input type="hidden" name="direction" id="roll-direction" value="long">
|
||||||
<select name="add_mode" id="roll-add-mode" onchange="var f=document.getElementById('roll-form');if(f){f.setAttribute('data-add-mode',this.value);}">
|
<select name="add_mode" id="roll-add-mode" onchange="var f=document.getElementById('roll-form');if(f){f.setAttribute('data-add-mode',this.value);if(window.syncRollFormMode)syncRollFormMode(f,this.value);}">
|
||||||
<option value="market">市价加仓</option>
|
<option value="market">市价加仓</option>
|
||||||
<option value="fib_618">斐波 0.618</option>
|
<option value="fib_618">斐波 0.618</option>
|
||||||
<option value="fib_786">斐波 0.786</option>
|
<option value="fib_786">斐波 0.786</option>
|
||||||
<option value="breakout">突破加仓</option>
|
<option value="breakout">突破加仓</option>
|
||||||
</select>
|
</select>
|
||||||
<span class="roll-field roll-field-fib" hidden>
|
<span class="roll-field roll-field-fib">
|
||||||
<input name="fib_upper" id="roll-fib-upper" step="any" placeholder="上沿 H" disabled>
|
<input name="fib_upper" id="roll-fib-upper" step="any" placeholder="上沿 H">
|
||||||
<input name="fib_lower" id="roll-fib-lower" step="any" placeholder="下沿 L" disabled>
|
<input name="fib_lower" id="roll-fib-lower" step="any" placeholder="下沿 L">
|
||||||
</span>
|
</span>
|
||||||
<span class="roll-field roll-field-breakout" hidden>
|
<span class="roll-field roll-field-breakout">
|
||||||
<input name="breakthrough_price" id="roll-breakout" step="any" placeholder="突破价" disabled>
|
<input name="breakthrough_price" id="roll-breakout" step="any" placeholder="突破价">
|
||||||
</span>
|
</span>
|
||||||
<input name="new_stop_loss" id="roll-stop-loss" type="number" min="0" step="any" placeholder="新止损价" required>
|
<input name="new_stop_loss" id="roll-stop-loss" type="number" min="0" step="any" placeholder="新止损价" required>
|
||||||
<button type="button" id="roll-preview-btn" {% if roll_trend_active %}disabled{% endif %}>预览</button>
|
<button type="button" id="roll-preview-btn" {% if roll_trend_active %}disabled{% endif %}>预览</button>
|
||||||
@@ -101,4 +101,4 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="/static/strategy_roll.js?v=2"></script>
|
<script src="/static/strategy_roll.js?v=3"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user