恢复下单界面并排布局,品种推荐数据库缓存与 SSE 推送。

期货下单与持仓监控左右并排,推荐按资金过滤存库,后台刷新并通过 EventSource 推送。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-24 10:41:26 +08:00
parent 38a38cb51d
commit 709801305f
7 changed files with 480 additions and 161 deletions
+26 -8
View File
@@ -1,14 +1,32 @@
.trade-page{max-width:1100px;margin:0 auto}
.trade-page{max-width:1200px;margin:0 auto}
.trade-top-bar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-bottom:1.25rem}
.trade-dashboard{display:flex;flex-direction:column;gap:1.25rem}
.trade-card{margin-bottom:0}
.trade-card h2{margin-bottom:.65rem}
.trade-order-status{display:grid;gap:.55rem;margin:.75rem 0;padding:.85rem 1rem;background:var(--card-inner);border:1px solid var(--card-border);border-radius:8px;font-size:.85rem}
.trade-row-split{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:stretch}
.trade-card{margin-bottom:0;height:100%;display:flex;flex-direction:column}
.trade-card h2{margin-bottom:.65rem;flex-shrink:0}
.trade-card .card-body{flex:1;min-height:0}
.trade-card-full{margin-bottom:0}
.trade-order-status{display:grid;gap:.55rem;margin:.5rem 0 .75rem;padding:.65rem .85rem;background:var(--card-inner);border:1px solid var(--card-border);border-radius:8px;font-size:.82rem}
.trade-order-status-compact{margin-top:0}
.trade-order-status .status-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem}
.trade-order-status .trend-active{padding-top:.35rem;border-top:1px dashed var(--card-border)}
.trade-order-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1rem}
.trade-footer{background:var(--card-inner);border-radius:8px;padding:.75rem 1rem;font-size:.82rem;line-height:1.55;border:1px solid var(--card-border);margin-top:1rem}
.trade-input-row,.trade-risk-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.65rem;margin-bottom:.75rem}
.trade-field label{display:block;font-size:.72rem;margin-bottom:.25rem;color:var(--text-label)}
.trade-btn-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.75rem 0}
.trade-btn{border:none;border-radius:8px;padding:.65rem .3rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.12rem;color:#fff;font-weight:600}
.trade-btn .btn-price{font-size:1rem}
.trade-btn .btn-label{font-size:.82rem}
.trade-btn .btn-sub{font-size:.66rem;opacity:.85;font-weight:400}
.trade-btn.long{background:linear-gradient(180deg,#e74c3c,#c0392b)}
.trade-btn.lock{background:linear-gradient(180deg,#27ae60,#1e8449)}
.trade-btn.close{background:linear-gradient(180deg,#3498db,#2980b9)}
.trade-footer{background:var(--card-inner);border-radius:8px;padding:.65rem .85rem;font-size:.78rem;line-height:1.5;border:1px solid var(--card-border);margin-top:.5rem}
.trade-footer strong{color:var(--accent)}
.rec-blocked td{opacity:.55}
.rec-ok td:first-child{font-weight:600}
#positions .card-body{max-height:520px}
#positions .card-body{max-height:480px;overflow-y:auto}
@media (max-width:900px){
.trade-row-split{grid-template-columns:1fr}
#positions .card-body{max-height:360px}
.trade-btn-row{grid-template-columns:repeat(2,1fr)}
}