完善下单表单与 CTP 持仓,requirements 加入 vnpy 并更新部署文档
以损定仓/固定张数分栏下单、限价市价、持仓仅读柜台;DEPLOY 补充 SimNow 与 vnpy 安装说明。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+17
-12
@@ -3,30 +3,35 @@
|
||||
.trade-dashboard{display:flex;flex-direction:column;gap:1.25rem}
|
||||
.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 h2{margin-bottom:.35rem;flex-shrink:0}
|
||||
.trade-card .card-body{flex:1;min-height:0}
|
||||
.trade-card-full{margin-bottom:0}
|
||||
.pos-hint{font-size:.75rem;margin:-.15rem 0 .5rem .25rem;color:var(--text-muted)}
|
||||
.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-input-row,.trade-risk-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.65rem;margin-bottom:.75rem}
|
||||
.trade-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.75rem}
|
||||
.trade-form-grid .span-2{grid-column:span 2}
|
||||
.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-field select,.trade-field input{width:100%}
|
||||
.price-type-tabs{display:flex;gap:.35rem;margin-bottom:.35rem}
|
||||
.price-tab{border:1px solid var(--card-border);background:var(--card-inner);color:var(--text-muted);padding:.25rem .65rem;border-radius:6px;font-size:.75rem;cursor:pointer}
|
||||
.price-tab.active{border-color:var(--accent);color:var(--accent);font-weight:600}
|
||||
.market-hint{font-size:.7rem;margin-top:.25rem}
|
||||
.calc-lots-row{display:flex;gap:.4rem}
|
||||
.calc-lots-row input{flex:1}
|
||||
.calc-lots-row .btn-secondary{padding:.35rem .6rem;font-size:.75rem;white-space:nowrap}
|
||||
.trade-action-row{display:flex;gap:.65rem;margin:.75rem 0 .5rem}
|
||||
.trade-action-row .btn-open{flex:1;padding:.65rem}
|
||||
.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:480px;overflow-y:auto}
|
||||
#positions .card-body{max-height:460px;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)}
|
||||
.trade-form-grid{grid-template-columns:1fr}
|
||||
.trade-form-grid .span-2{grid-column:span 1}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user