merge dev

This commit is contained in:
Icy
2025-11-12 23:40:58 +08:00
140 changed files with 33470 additions and 4481 deletions

View File

@@ -12,6 +12,7 @@ import {
import useSWR from 'swr'
import { api } from '../lib/api'
import { useLanguage } from '../contexts/LanguageContext'
import { useAuth } from '../contexts/AuthContext'
import { t } from '../i18n/translations'
import {
AlertTriangle,
@@ -36,10 +37,11 @@ interface EquityChartProps {
export function EquityChart({ traderId }: EquityChartProps) {
const { language } = useLanguage()
const { user, token } = useAuth()
const [displayMode, setDisplayMode] = useState<'dollar' | 'percent'>('dollar')
const { data: history, error } = useSWR<EquityPoint[]>(
traderId ? `equity-history-${traderId}` : 'equity-history',
user && token && traderId ? `equity-history-${traderId}` : null,
() => api.getEquityHistory(traderId),
{
refreshInterval: 30000, // 30秒刷新历史数据更新频率较低
@@ -49,7 +51,7 @@ export function EquityChart({ traderId }: EquityChartProps) {
)
const { data: account } = useSWR(
traderId ? `account-${traderId}` : 'account',
user && token && traderId ? `account-${traderId}` : null,
() => api.getAccount(traderId),
{
refreshInterval: 15000, // 15秒刷新配合后端缓存
@@ -113,9 +115,12 @@ export function EquityChart({ traderId }: EquityChartProps) {
: validHistory
// 计算初始余额(优先从 account 获取配置的初始余额,备选从历史数据反推)
const initialBalance = account?.initial_balance // 从交易员配置读取真实初始余额
|| (validHistory[0] ? validHistory[0].total_equity - validHistory[0].pnl : undefined) // 备选:淨值 - 盈亏
|| 1000; // 默认值(与创建交易员时的默认配置一致)
const initialBalance =
account?.initial_balance || // 从交易员配置读取真实初始余额
(validHistory[0]
? validHistory[0].total_equity - validHistory[0].pnl
: undefined) || // 备选:淨值 - 盈亏
1000 // 默认值(与创建交易员时的默认配置一致)
// 转换数据格式
const chartData = displayHistory.map((point) => {