diff --git a/frontend/app/trades/page.tsx b/frontend/app/trades/page.tsx index 200cfd7..06c2bf5 100644 --- a/frontend/app/trades/page.tsx +++ b/frontend/app/trades/page.tsx @@ -32,6 +32,12 @@ interface SummaryBar { type Symbol = "BTC" | "ETH" | "XRP" | "SOL"; type Interval = "1m" | "5m" | "15m" | "1h"; +// 价格格式化:<100显示4位小数,>=100显示1位 +function fmtPrice(p: number): string { + const digits = p < 100 ? 4 : 1; + return p.toLocaleString("en-US", { minimumFractionDigits: digits, maximumFractionDigits: digits }); +} + const INTERVALS: { label: string; value: Interval }[] = [ { label: "1m", value: "1m" }, { label: "5m", value: "5m" }, @@ -117,7 +123,7 @@ function LiveTrades({ symbol }: { symbol: Symbol }) { {trades.map(t => ( - {t.is_buyer_maker === 0 ? "▲" : "▼"} {t.price.toLocaleString("en-US", { minimumFractionDigits: 1, maximumFractionDigits: 1 })} + {t.is_buyer_maker === 0 ? "▲" : "▼"} {fmtPrice(t.price)} {t.qty >= 1000 ? `${(t.qty/1000).toFixed(2)}K` : t.qty.toFixed(symbol === "BTC" ? 4 : 3)} @@ -273,12 +279,12 @@ function FlowAnalysis({ symbol }: { symbol: Symbol }) { {/* 右轴:价格,自适应波动范围 */} v >= 1000 ? `$${(v/1000).toFixed(1)}k` : `$${v.toFixed(0)}`} + tickFormatter={(v: number) => v >= 1000 ? `$${(v/1000).toFixed(1)}k` : `$${fmtPrice(v)}`} /> { - if (name === "price") return [`$${Number(v).toLocaleString("en-US", { minimumFractionDigits: 1, maximumFractionDigits: 1 })}`, "币价(VWAP)"]; + if (name === "price") return [`$${fmtPrice(Number(v))}`, "币价(VWAP)"]; return [`${Number(v).toFixed(2)}`, "Delta"]; }} contentStyle={{ background: "#fff", border: "1px solid #e2e8f0", borderRadius: 8, fontSize: 11 }}