Fix strategy roll page JS broken by Jinja in static file.
Pass trading_session via inline page config, restore roll preview/execute handlers, and validate new stop-loss before preview. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -122,11 +122,13 @@
|
|||||||
btnExec.textContent = mode === 'market' ? '执行滚仓' : '提交监控';
|
btnExec.textContent = mode === 'market' ? '执行滚仓' : '提交监控';
|
||||||
}
|
}
|
||||||
if (btnPreview) {
|
if (btnPreview) {
|
||||||
btnPreview.disabled = !inTradingSession && !isBreak;
|
btnPreview.disabled = false;
|
||||||
btnPreview.title = (!inTradingSession && !isBreak)
|
btnPreview.title = (!inTradingSession && !isBreak)
|
||||||
? '休盘期间请切换为突破加仓'
|
? '休盘可预览;市价加仓须交易时段内执行'
|
||||||
: '';
|
: '';
|
||||||
}
|
}
|
||||||
|
var offHint = document.getElementById('roll-off-session-hint');
|
||||||
|
if (offHint) offHint.hidden = inTradingSession || isBreak;
|
||||||
}
|
}
|
||||||
|
|
||||||
function syncRollRiskHint() {
|
function syncRollRiskHint() {
|
||||||
@@ -203,7 +205,7 @@
|
|||||||
var rollPayload = null;
|
var rollPayload = null;
|
||||||
var rollMonitorSel = document.getElementById('roll-monitor-select');
|
var rollMonitorSel = document.getElementById('roll-monitor-select');
|
||||||
var rollModeSel = document.getElementById('roll-add-mode');
|
var rollModeSel = document.getElementById('roll-add-mode');
|
||||||
var inTradingSession = {{ 'true' if trading_session else 'false' }};
|
var inTradingSession = !!(window.STRATEGY_PAGE && window.STRATEGY_PAGE.inTradingSession);
|
||||||
|
|
||||||
if (rollModeSel) rollModeSel.addEventListener('change', syncRollModeUi);
|
if (rollModeSel) rollModeSel.addEventListener('change', syncRollModeUi);
|
||||||
if (rollMonitorSel) rollMonitorSel.addEventListener('change', syncRollRiskHint);
|
if (rollMonitorSel) rollMonitorSel.addEventListener('change', syncRollRiskHint);
|
||||||
@@ -212,19 +214,29 @@
|
|||||||
|
|
||||||
if (btnRollP && rollForm) {
|
if (btnRollP && rollForm) {
|
||||||
btnRollP.addEventListener('click', function () {
|
btnRollP.addEventListener('click', function () {
|
||||||
btnRollP.disabled = true;
|
|
||||||
rollPayload = formData(rollForm);
|
rollPayload = formData(rollForm);
|
||||||
|
var sl = parseFloat(rollPayload.new_stop_loss);
|
||||||
|
if (!sl || sl <= 0) {
|
||||||
|
showPreview(rollPrev, '请填写新统一止损', false, false);
|
||||||
|
if (btnRollE) btnRollE.hidden = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
btnRollP.disabled = true;
|
||||||
jsonPost('/api/strategy/roll/preview', rollPayload).then(function (d) {
|
jsonPost('/api/strategy/roll/preview', rollPayload).then(function (d) {
|
||||||
if (!d.ok) {
|
if (!d.ok) {
|
||||||
showPreview(rollPrev, d.error, false, false);
|
showPreview(rollPrev, d.error || '预览失败', false, false);
|
||||||
btnRollE.hidden = true;
|
btnRollE.hidden = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
showPreview(rollPrev, formatRoll(d.preview), true, false);
|
showPreview(rollPrev, formatRoll(d.preview), true, false);
|
||||||
btnRollE.hidden = false;
|
btnRollE.hidden = false;
|
||||||
syncRollModeUi();
|
syncRollModeUi();
|
||||||
|
}).catch(function () {
|
||||||
|
showPreview(rollPrev, '预览请求失败,请稍后重试', false, false);
|
||||||
|
if (btnRollE) btnRollE.hidden = true;
|
||||||
}).finally(function () {
|
}).finally(function () {
|
||||||
btnRollP.disabled = false;
|
btnRollP.disabled = false;
|
||||||
|
syncRollModeUi();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,9 @@
|
|||||||
<div id="roll-preview" class="strategy-preview" hidden></div>
|
<div id="roll-preview" class="strategy-preview" hidden></div>
|
||||||
<p class="hint" id="roll-exec-hint" hidden style="font-size:.75rem;margin-top:.45rem">市价加仓:须交易时段内确认,10 秒倒计时执行;突破加仓:休盘也可提交,开盘后再监控触价</p>
|
<p class="hint" id="roll-exec-hint" hidden style="font-size:.75rem;margin-top:.45rem">市价加仓:须交易时段内确认,10 秒倒计时执行;突破加仓:休盘也可提交,开盘后再监控触价</p>
|
||||||
{% if not trading_session %}
|
{% if not trading_session %}
|
||||||
<p class="hint text-muted" id="roll-off-session-hint" style="font-size:.75rem;margin-top:.35rem">当前{{ session_clock.status_label or '休盘' }}:请选「突破加仓」填写突破价后预览并提交监控。</p>
|
<p class="hint text-muted" id="roll-off-session-hint" style="font-size:.75rem;margin-top:.35rem">当前{{ session_clock.status_label or '休盘' }}:市价加仓须交易时段内执行;休盘可先预览,或选「突破加仓」提交监控。</p>
|
||||||
|
{% else %}
|
||||||
|
<p class="hint text-muted" id="roll-off-session-hint" hidden style="font-size:.75rem;margin-top:.35rem"></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -211,5 +213,10 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block extra_js %}
|
{% block extra_js %}
|
||||||
|
<script>
|
||||||
|
window.STRATEGY_PAGE = {
|
||||||
|
inTradingSession: {{ 'true' if trading_session else 'false' }}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
<script src="{{ url_for('static', filename='js/strategy.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/strategy.js') }}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user