Right-align open-capacity row; split semi exit rule into two lines.

Logic check: K+/-N option target and unit*k perp net lock remain correct.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-08-08 15:17:22 +08:00
parent 723c5fc1fc
commit 50783e18d0
2 changed files with 43 additions and 20 deletions
+27 -20
View File
@@ -590,27 +590,34 @@ export default function PlanPage() {
Number(plan?.risk_last_k ?? plan?.risk_sizing_preview?.k ?? 1)
: semiExitU),
);
const exitRuleLabel = semiOn
? semiOptTarget != null
? `期权目标 K${Math.round(semiExitStrike!)}${fmtExPx("index", semiOptTarget)} · 永续净利锁定≥${fmt(semiNetLock, 2)}U`
: `期权目标 行权价${semiExitView === "short" ? "" : "+"}${fmt(semiExitMove, 0)} · 永续净利锁定≥${fmt(semiNetLock, 2)}U`
: isOo
const exitRuleLabel = semiOn ? (
<span className="plan-exit-semi">
<span>
{semiOptTarget != null
? `期权目标 K${Math.round(semiExitStrike!)}${fmtExPx("index", semiOptTarget)}`
: `期权目标 行权价${semiExitView === "short" ? "" : "+"}${fmt(semiExitMove, 0)}`}
</span>
<span>{`永续目标 净利锁定≥${fmt(semiNetLock, 2)}U`}</span>
</span>
) : isOo ? (
exitTarget != null
? `${riskLocked ? "锁定 " : ""}净盈≥${fmt(exitTarget)} U${
ooBudget != null ? `${fmt(ooBudget)}×` : "预算×"
}${fmt(ooRatio, 1)}`
: `净盈≥预算×${fmt(ooRatio, 1)}(达标只平盈利腿)`
) : exitMode === "premium_multiple" ? (
riskBased
? exitTarget != null
? `${riskLocked ? "锁定 " : ""}净盈≥${fmt(exitTarget)} U${
ooBudget != null ? `${fmt(ooBudget)}×` : "预算×"
}${fmt(ooRatio, 1)}`
: `净盈≥预算×${fmt(ooRatio, 1)}(达标只平盈利腿)`
: exitMode === "premium_multiple"
? riskBased
? exitTarget != null
? `${riskLocked ? "锁定 " : ""}净盈≥${fmt(exitTarget)} U(权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}`
: `权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}(开仓后锁定)`
: `权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}`
: riskBased
? exitTarget != null
? `${riskLocked ? "锁定 " : "固定 "}${fmt(exitTarget)} U(基数${fmt(plan?.risk_exit_unit ?? 15)}`
: `待估算(基数${fmt(plan?.risk_exit_unit ?? 15)}`
: `固定 ${fmt(plan?.net_profit_target ?? 15)} U`;
? `${riskLocked ? "锁定 " : ""}净盈≥${fmt(exitTarget)} U权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}`
: `权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}(开仓后锁定)`
: `权利金×${fmt(plan?.premium_exit_multiple ?? 1, 2)}`
) : riskBased ? (
exitTarget != null
? `${riskLocked ? "锁定 " : "固定 "}${fmt(exitTarget)} U(基数${fmt(plan?.risk_exit_unit ?? 15)}`
: `待估算(基数${fmt(plan?.risk_exit_unit ?? 15)}`
) : (
`固定 ${fmt(plan?.net_profit_target ?? 15)} U`
);
const riskRatioLabel = isOo
? "预算平分 Call/Put"
: `比例${Number(plan?.risk_perp_unit ?? 1)}:${Number(plan?.risk_option_unit ?? 2)}`;
+16
View File
@@ -353,9 +353,16 @@ input {
display: inline-flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 6px;
font-weight: 700;
font-size: 14px;
width: 100%;
text-align: right;
}
.kv > span.open-cap-row {
justify-content: flex-end;
}
.open-cap-sep {
@@ -1406,6 +1413,15 @@ input {
flex: 0 0 auto;
}
.plan-exit-semi {
display: inline-flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
text-align: right;
width: 100%;
}
.plan-positions {
display: flex;
flex-direction: column;