Show exchange badge and expanded rule tips in hub order popup.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-25 23:30:41 +08:00
parent 95d5469d12
commit d8140c6216
7 changed files with 72 additions and 14 deletions
+6
View File
@@ -24,6 +24,12 @@
{% elif page == 'trade' %} {% elif page == 'trade' %}
<div class="dual-panel-grid{% if order_popup %} order-popup-trade-grid{% endif %}" style="grid-column:1/-1"> <div class="dual-panel-grid{% if order_popup %} order-popup-trade-grid{% endif %}" style="grid-column:1/-1">
<div class="card order-popup-form-card"> <div class="card order-popup-form-card">
{% if order_popup %}
<div class="order-popup-exchange-bar">
<span class="exchange-tag order-popup-exchange-tag">{{ exchange_display }}</span>
<span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}" id="account-risk-badge" role="status" title="{{ risk_status.reason|default('', true) }}" data-status-label="{{ risk_status.status_label|default('正常') }}"{% if risk_status.freeze_until_ms %} data-freeze-until-ms="{{ risk_status.freeze_until_ms }}"{% endif %}>{{ risk_status.status_label|default('正常') }}</span>
</div>
{% endif %}
{% if not order_popup %} {% if not order_popup %}
<div style="display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px"> <div style="display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px">
<h2 style="margin-bottom:0">实盘下单监控</h2> <h2 style="margin-bottom:0">实盘下单监控</h2>
+1 -1
View File
@@ -21,7 +21,7 @@
data-price-refresh-ms="{{ price_refresh_seconds * 1000 }}" data-price-refresh-ms="{{ price_refresh_seconds * 1000 }}"
> >
{% if order_popup %} {% if order_popup %}
<link rel="stylesheet" href="/static/embed_order_popup.css?v=2"> <link rel="stylesheet" href="/static/embed_order_popup.css?v=3">
{% endif %} {% endif %}
<div class="container{% if order_popup %} embed-order-popup-shell{% endif %}"> <div class="container{% if order_popup %} embed-order-popup-shell{% endif %}">
{% if not order_popup %} {% if not order_popup %}
+57 -5
View File
@@ -1,4 +1,4 @@
/* 中控弹窗 iframe紧凑表单,无内部滚动条 */ /* 中控弹窗 iframe仅实盘下单模块 */
html:has(body[data-order-popup="1"]), html:has(body[data-order-popup="1"]),
body[data-order-popup="1"] { body[data-order-popup="1"] {
overflow: hidden !important; overflow: hidden !important;
@@ -23,21 +23,64 @@ body[data-order-popup="1"] .order-popup-trade-grid {
body[data-order-popup="1"] .order-popup-form-card { body[data-order-popup="1"] .order-popup-form-card {
margin: 0; margin: 0;
padding: 10px 12px 12px; padding: 10px 12px 12px;
border: none;
background: transparent;
box-shadow: none;
} }
body[data-order-popup="1"] .order-popup-form-card .tip-collapse { body[data-order-popup="1"] .order-popup-exchange-bar {
margin-bottom: 4px; display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
margin-bottom: 10px;
padding-bottom: 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
} }
body[data-order-popup="1"] .order-popup-form-card .tip-collapse-summary { body[data-order-popup="1"] .order-popup-exchange-tag {
padding: 6px 8px; font-size: 0.85rem;
}
/* 规则说明:始终展开,不可折叠 */
body[data-order-popup="1"] .order-popup-form-card details.tip-collapse {
display: block;
margin-bottom: 8px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 8px;
padding: 0;
background: rgba(0, 0, 0, 0.15);
}
body[data-order-popup="1"] .order-popup-form-card details.tip-collapse > summary {
display: block;
pointer-events: none;
cursor: default;
list-style: none;
padding: 8px 10px 4px;
font-size: 12px; font-size: 12px;
font-weight: 600;
color: #cfd3ef;
}
body[data-order-popup="1"] .order-popup-form-card details.tip-collapse > summary::-webkit-details-marker,
body[data-order-popup="1"] .order-popup-form-card details.tip-collapse > summary::marker {
display: none;
content: "";
}
body[data-order-popup="1"] .order-popup-form-card details.tip-collapse .tip-collapse-body {
display: block !important;
padding: 4px 10px 10px;
font-size: 11px;
line-height: 1.45;
} }
body[data-order-popup="1"] #add-order-form { body[data-order-popup="1"] #add-order-form {
gap: 6px 8px; gap: 6px 8px;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; align-items: center;
margin-top: 4px;
} }
body[data-order-popup="1"] #add-order-form input, body[data-order-popup="1"] #add-order-form input,
@@ -54,3 +97,12 @@ body[data-order-popup="1"] #add-order-form > span {
body[data-order-popup="1"] .order-plan-preview-bar { body[data-order-popup="1"] .order-plan-preview-bar {
margin-top: 8px; margin-top: 8px;
} }
html[data-theme="light"] body[data-order-popup="1"] .order-popup-exchange-bar {
border-bottom-color: rgba(0, 0, 0, 0.08);
}
html[data-theme="light"] body[data-order-popup="1"] .order-popup-form-card details.tip-collapse {
border-color: rgba(0, 0, 0, 0.08);
background: rgba(0, 0, 0, 0.03);
}
@@ -1,4 +1,4 @@
<details class="tip-collapse order-rule-collapse"> <details class="tip-collapse order-rule-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">开仓规则说明</summary> <summary class="tip-collapse-summary">开仓规则说明</summary>
<div class="tip-collapse-body rule-tip" id="order-rule-tip"> <div class="tip-collapse-body rule-tip" id="order-rule-tip">
规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x 规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x
@@ -7,7 +7,7 @@
人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1 人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1
</div> </div>
</details> </details>
<details class="tip-collapse order-sizing-collapse"> <details class="tip-collapse order-sizing-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">计仓与保本说明</summary> <summary class="tip-collapse-summary">计仓与保本说明</summary>
<div class="tip-collapse-body rule-tip"> <div class="tip-collapse-body rule-tip">
计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启) 计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启)
@@ -1,4 +1,4 @@
<details class="tip-collapse order-rule-collapse"> <details class="tip-collapse order-rule-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">开仓规则说明</summary> <summary class="tip-collapse-summary">开仓规则说明</summary>
<div class="tip-collapse-body rule-tip" id="order-rule-tip"> <div class="tip-collapse-body rule-tip" id="order-rule-tip">
规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x 规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x
@@ -7,7 +7,7 @@
人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1 人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1
</div> </div>
</details> </details>
<details class="tip-collapse order-sizing-collapse"> <details class="tip-collapse order-sizing-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">计仓与保本说明</summary> <summary class="tip-collapse-summary">计仓与保本说明</summary>
<div class="tip-collapse-body rule-tip"> <div class="tip-collapse-body rule-tip">
计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启) 计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启)
@@ -1,4 +1,4 @@
<details class="tip-collapse order-rule-collapse"> <details class="tip-collapse order-rule-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">开仓规则说明</summary> <summary class="tip-collapse-summary">开仓规则说明</summary>
<div class="tip-collapse-body rule-tip" id="order-rule-tip"> <div class="tip-collapse-body rule-tip" id="order-rule-tip">
规则:最大同时持仓 {{ max_active_positions }}(当前 active {{ active_count }});与「趋势回调」计划互斥;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x 规则:最大同时持仓 {{ max_active_positions }}(当前 active {{ active_count }});与「趋势回调」计划互斥;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x
@@ -7,7 +7,7 @@
人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1 人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1
</div> </div>
</details> </details>
<details class="tip-collapse order-sizing-collapse"> <details class="tip-collapse order-sizing-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">计仓与保本说明</summary> <summary class="tip-collapse-summary">计仓与保本说明</summary>
<div class="tip-collapse-body rule-tip"> <div class="tip-collapse-body rule-tip">
计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启) 计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启)
@@ -1,4 +1,4 @@
<details class="tip-collapse order-rule-collapse"> <details class="tip-collapse order-rule-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">开仓规则说明</summary> <summary class="tip-collapse-summary">开仓规则说明</summary>
<div class="tip-collapse-body rule-tip" id="order-rule-tip"> <div class="tip-collapse-body rule-tip" id="order-rule-tip">
规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x 规则:最多 {{ max_active_positions }} 仓;BTC {{ btc_leverage }}x / 山寨 {{ alt_leverage }}x
@@ -7,7 +7,7 @@
人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1 人工开仓盈亏比不得低于 {{ manual_min_planned_rr }}:1
</div> </div>
</details> </details>
<details class="tip-collapse order-sizing-collapse"> <details class="tip-collapse order-sizing-collapse"{% if order_popup %} open{% endif %}>
<summary class="tip-collapse-summary">计仓与保本说明</summary> <summary class="tip-collapse-summary">计仓与保本说明</summary>
<div class="tip-collapse-body rule-tip"> <div class="tip-collapse-body rule-tip">
计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启) 计仓模式:<strong>{{ position_sizing_mode_label }}</strong>(仅 .env <code>POSITION_SIZING_MODE</code>,须无仓后重启)