Add hub strategy calculator page with trend and roll risk-based sizing.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-23 17:35:06 +08:00
parent 1ba0014fff
commit 253d353206
8 changed files with 887 additions and 2 deletions
+143
View File
@@ -6804,3 +6804,146 @@ body.funds-fullscreen-open {
}
}
/* ── 策略计算器 ── */
.calc-layout {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
align-items: start;
}
.calc-card {
padding: 16px 18px;
}
.calc-card h2 {
margin: 0 0 8px;
font-size: 1rem;
color: var(--text);
}
.calc-hint {
margin: 0 0 14px;
font-size: 0.78rem;
color: var(--muted);
line-height: 1.5;
}
.calc-form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
}
.calc-field {
display: flex;
flex-direction: column;
gap: 5px;
font-size: 0.78rem;
color: var(--muted);
}
.calc-field input,
.calc-field select {
background: var(--bg-elevated);
border: 1px solid var(--border);
color: var(--text);
border-radius: 8px;
padding: 8px 10px;
font-size: 0.82rem;
font-family: var(--mono);
}
.calc-actions {
margin-top: 12px;
}
.calc-result {
margin-top: 14px;
padding-top: 12px;
border-top: 1px solid var(--border-soft);
}
.calc-result.hidden {
display: none !important;
}
.calc-summary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 8px 12px;
margin-bottom: 12px;
}
.calc-summary div {
background: var(--bg-elevated);
border: 1px solid var(--border-soft);
border-radius: 8px;
padding: 8px 10px;
}
.calc-summary span {
display: block;
font-size: 0.72rem;
color: var(--muted);
margin-bottom: 4px;
}
.calc-summary strong {
font-family: var(--mono);
font-size: 0.86rem;
color: var(--text);
}
.calc-pnl-profit {
color: var(--green) !important;
}
.calc-pnl-loss {
color: var(--red) !important;
}
.calc-table-wrap {
overflow: auto;
}
.calc-table {
width: 100%;
border-collapse: collapse;
font-size: 0.78rem;
}
.calc-table th,
.calc-table td {
padding: 7px 8px;
border-bottom: 1px solid var(--border-soft);
text-align: left;
white-space: nowrap;
}
.calc-table th {
color: var(--muted);
font-weight: 600;
}
.calc-error {
color: var(--red);
font-size: 0.82rem;
margin: 0;
}
.calc-empty {
color: var(--muted);
font-size: 0.82rem;
margin: 0;
}
@media (max-width: 960px) {
.calc-layout {
grid-template-columns: 1fr;
}
.calc-form-grid {
grid-template-columns: 1fr;
}
}