Desktop calculator: top tabs with input/result dual cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-20 12:54:13 +08:00
parent 7a01535802
commit 29c080f8e0
2 changed files with 223 additions and 129 deletions
+133 -117
View File
@@ -16,7 +16,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" media="print" onload="this.media='all'" />
<noscript><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" /></noscript>
<link rel="stylesheet" href="/assets/app.css?v=20260718-strategy-pad" />
<link rel="stylesheet" href="/assets/app.css?v=20260720-calc-desktop-split" />
<link rel="stylesheet" href="/assets/trade_stats_calendar.css?v=4" />
<link rel="stylesheet" href="/assets/account_risk_badge.css?v=4" />
<script src="/assets/account_risk_badge.js?v=4"></script>
@@ -812,127 +812,143 @@
</div>
<div class="calc-layout" data-calc-tab="trend">
<section class="calc-card card" data-calc-pane="trend">
<h2>趋势回调计算器</h2>
<p class="calc-hint">逻辑与实例策略页一致:首仓 50% + 补仓网格;止损金额 = 资金 × 风险%.</p>
<form id="calc-trend-form" class="calc-form">
<div class="calc-form-grid">
<label class="calc-field">
<span>交易所</span>
<select id="calc-trend-exchange" required></select>
</label>
<label class="calc-field">
<span>币种</span>
<input id="calc-trend-base" type="text" value="ETH" placeholder="如 ETH" required autocomplete="off" />
</label>
<div class="calc-field calc-field-span2">
<div id="calc-trend-market-info" class="calc-market-info">ETH/USDT · 加载合约信息…</div>
</div>
<label class="calc-field">
<span>交易资金 (U)</span>
<input id="calc-trend-capital" type="number" min="0.01" step="any" value="1000" required />
</label>
<label class="calc-field">
<span>风险 %</span>
<input id="calc-trend-risk" type="number" min="0.1" step="0.1" value="5" required />
</label>
<label class="calc-field">
<span>杠杆</span>
<input id="calc-trend-leverage" type="number" min="1" step="1" value="5" required />
</label>
<label class="calc-field">
<span>方向</span>
<select id="calc-trend-direction">
<option value="long">做多</option>
<option value="short">做空</option>
</select>
</label>
<label class="calc-field">
<span>首仓入场价</span>
<input id="calc-trend-entry" type="number" min="0" step="any" placeholder="手动输入" required />
</label>
<label class="calc-field">
<span>止损价</span>
<input id="calc-trend-sl" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span id="calc-trend-add-label">补仓上沿价</span>
<input id="calc-trend-add-upper" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>止盈价</span>
<input id="calc-trend-tp" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>补仓档数</span>
<input id="calc-trend-dca-legs" type="number" min="1" max="20" step="1" value="5" />
</label>
<div class="calc-pane-split">
<div class="calc-input-panel">
<h2>趋势回调计算器</h2>
<p class="calc-hint">逻辑与实例策略页一致:首仓 50% + 补仓网格;止损金额 = 资金 × 风险%.</p>
<form id="calc-trend-form" class="calc-form">
<div class="calc-form-grid">
<label class="calc-field">
<span>交易所</span>
<select id="calc-trend-exchange" required></select>
</label>
<label class="calc-field">
<span>币种</span>
<input id="calc-trend-base" type="text" value="ETH" placeholder="如 ETH" required autocomplete="off" />
</label>
<div class="calc-field calc-field-span2">
<div id="calc-trend-market-info" class="calc-market-info">ETH/USDT · 加载合约信息…</div>
</div>
<label class="calc-field">
<span>交易资金 (U)</span>
<input id="calc-trend-capital" type="number" min="0.01" step="any" value="1000" required />
</label>
<label class="calc-field">
<span>风险 %</span>
<input id="calc-trend-risk" type="number" min="0.1" step="0.1" value="5" required />
</label>
<label class="calc-field">
<span>杠杆</span>
<input id="calc-trend-leverage" type="number" min="1" step="1" value="5" required />
</label>
<label class="calc-field">
<span>方向</span>
<select id="calc-trend-direction">
<option value="long">做多</option>
<option value="short">做空</option>
</select>
</label>
<label class="calc-field">
<span>首仓入场价</span>
<input id="calc-trend-entry" type="number" min="0" step="any" placeholder="手动输入" required />
</label>
<label class="calc-field">
<span>止损价</span>
<input id="calc-trend-sl" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span id="calc-trend-add-label">补仓上沿价</span>
<input id="calc-trend-add-upper" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>止盈价</span>
<input id="calc-trend-tp" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>补仓档数</span>
<input id="calc-trend-dca-legs" type="number" min="1" max="20" step="1" value="5" />
</label>
</div>
<div class="calc-actions">
<button type="submit" class="primary">计算</button>
</div>
</form>
</div>
<div class="calc-actions">
<button type="submit" class="primary"></button>
</div>
</form>
<div id="calc-trend-result" class="calc-result hidden"></div>
<aside class="calc-result-panel" aria-label="趋势回调结果推算">
<h3 class="calc-result-title">结果推</h3>
<p class="calc-result-placeholder">填写左侧参数后点击「计算」</p>
<div id="calc-trend-result" class="calc-result hidden"></div>
</aside>
</div>
</section>
<section class="calc-card card" data-calc-pane="roll">
<h2>滚仓计算器</h2>
<p class="calc-hint">首仓按「单次风险」以损定仓;每次滚仓后合并持仓打到新止损 ≈ 单次风险;止盈锁定首仓价不变.最多 3 次滚仓.</p>
<form id="calc-roll-form" class="calc-form">
<div class="calc-form-grid">
<label class="calc-field">
<span>交易所</span>
<select id="calc-roll-exchange" required></select>
</label>
<label class="calc-field">
<span>币种</span>
<input id="calc-roll-base" type="text" value="ETH" placeholder="如 ETH" required autocomplete="off" />
</label>
<div class="calc-field calc-field-span2">
<div id="calc-roll-market-info" class="calc-market-info">ETH/USDT · 加载合约信息…</div>
</div>
<label class="calc-field">
<span>交易资金 (U)</span>
<input id="calc-roll-capital" type="number" min="0.01" step="any" value="1000" required />
</label>
<label class="calc-field">
<span>单次风险 %</span>
<input id="calc-roll-risk" type="number" min="0.1" step="0.1" value="5" required />
</label>
<label class="calc-field">
<span>方向</span>
<select id="calc-roll-direction">
<option value="long">做多</option>
<option value="short">做空</option>
</select>
</label>
<label class="calc-field">
<span>首仓入场价</span>
<input id="calc-roll-entry" type="number" min="0" step="any" placeholder="手动输入" required />
</label>
<label class="calc-field">
<span>首仓止损价</span>
<input id="calc-roll-sl" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>止盈价(锁定)</span>
<input id="calc-roll-tp" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>已完成滚仓次数</span>
<input id="calc-roll-legs-done" type="number" min="0" max="3" step="1" value="0" />
</label>
<div class="calc-pane-split">
<div class="calc-input-panel">
<h2>滚仓计算器</h2>
<p class="calc-hint">首仓按「单次风险」以损定仓;每次滚仓后合并持仓打到新止损 ≈ 单次风险;止盈锁定首仓价不变.最多 3 次滚仓.</p>
<form id="calc-roll-form" class="calc-form">
<div class="calc-form-grid">
<label class="calc-field">
<span>交易所</span>
<select id="calc-roll-exchange" required></select>
</label>
<label class="calc-field">
<span>币种</span>
<input id="calc-roll-base" type="text" value="ETH" placeholder="如 ETH" required autocomplete="off" />
</label>
<div class="calc-field calc-field-span2">
<div id="calc-roll-market-info" class="calc-market-info">ETH/USDT · 加载合约信息…</div>
</div>
<label class="calc-field">
<span>交易资金 (U)</span>
<input id="calc-roll-capital" type="number" min="0.01" step="any" value="1000" required />
</label>
<label class="calc-field">
<span>单次风险 %</span>
<input id="calc-roll-risk" type="number" min="0.1" step="0.1" value="5" required />
</label>
<label class="calc-field">
<span>方向</span>
<select id="calc-roll-direction">
<option value="long">做多</option>
<option value="short">做空</option>
</select>
</label>
<label class="calc-field">
<span>首仓入场价</span>
<input id="calc-roll-entry" type="number" min="0" step="any" placeholder="手动输入" required />
</label>
<label class="calc-field">
<span>首仓止损价</span>
<input id="calc-roll-sl" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>止盈价(锁定)</span>
<input id="calc-roll-tp" type="number" min="0" step="any" required />
</label>
<label class="calc-field">
<span>已完成滚仓次数</span>
<input id="calc-roll-legs-done" type="number" min="0" max="3" step="1" value="0" />
</label>
</div>
<div class="calc-roll-legs-head">
<strong>滚仓加仓(最多 3 次)</strong>
<button type="button" id="calc-roll-add-leg" class="ghost">+ 添加滚仓</button>
</div>
<div id="calc-roll-legs-list" class="calc-roll-legs-list"></div>
<div class="calc-actions">
<button type="submit" class="primary">计算</button>
</div>
</form>
</div>
<div class="calc-roll-legs-head">
<strong>滚仓加仓(最多 3 次)</strong>
<button type="button" id="calc-roll-add-leg" class="ghost">+ 添加滚仓</button>
</div>
<div id="calc-roll-legs-list" class="calc-roll-legs-list"></div>
<div class="calc-actions">
<button type="submit" class="primary">计算</button>
</div>
</form>
<div id="calc-roll-result" class="calc-result hidden"></div>
</section>
<aside class="calc-result-panel" aria-label="滚仓结果推算">
<h3 class="calc-result-title">结果推算</h3>
<p class="calc-result-placeholder">填写左侧参数后点击「计算」</p>
<div id="calc-roll-result" class="calc-result hidden"></div>
</aside>
</div>
</section>
</div>
</div>
</div>