fix: 修复前端编译错误

- 移除未使用的导入 useParams 和 useSearchParams
- 移除未使用的导入 Card
- 移除不存在的统计字段:totalMatchedOrders, winRate, averagePnl, maxPnl, minPnl
- 移除未使用的 formatPercent 函数
This commit is contained in:
WrBug
2025-12-09 06:33:16 +08:00
parent 442d5778a7
commit 095e2262f6
2 changed files with 1 additions and 90 deletions
@@ -1,5 +1,5 @@
import { useEffect, useState } from 'react'
import { Modal, Row, Col, Statistic, Spin, message, Card } from 'antd'
import { Modal, Row, Col, Statistic, Spin, message } from 'antd'
import { ArrowUpOutlined, ArrowDownOutlined } from '@ant-design/icons'
import { apiService } from '../../services/api'
import { formatUSDC } from '../../utils'
@@ -59,11 +59,6 @@ const StatisticsModal: React.FC<StatisticsModalProps> = ({
return num >= 0 ? <ArrowUpOutlined /> : <ArrowDownOutlined />
}
const formatPercent = (value: string): string => {
const num = parseFloat(value)
if (isNaN(num)) return '-'
return `${num >= 0 ? '+' : ''}${num.toFixed(2)}%`
}
return (
<Modal
@@ -103,14 +98,6 @@ const StatisticsModal: React.FC<StatisticsModalProps> = ({
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{statistics.totalSellOrders}</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px', borderBottom: '1px solid #f0f0f0' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.totalMatchedOrders') || '总匹配订单数'}
</div>
<div style={{ fontSize: '16px', fontWeight: '500', color: '#333', flex: '1', textAlign: 'right' }}>
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{statistics.totalMatchedOrders || 0}</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px', borderBottom: '1px solid #f0f0f0' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.totalBuyAmount') || '总买入金额'}
@@ -156,41 +143,6 @@ const StatisticsModal: React.FC<StatisticsModalProps> = ({
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{formatUSDC(statistics.totalUnrealizedPnl)} USDC</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px', borderBottom: '1px solid #f0f0f0' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.winRate') || '胜率'}
</div>
<div style={{ fontSize: '16px', fontWeight: '500', color: '#333', flex: '1', textAlign: 'right' }}>
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{formatPercent(statistics.winRate)}</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px', borderBottom: '1px solid #f0f0f0' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.averagePnl') || '平均盈亏'}
</div>
<div style={{ fontSize: '16px', fontWeight: '500', color: getPnlColor(statistics.averagePnl), flex: '1', textAlign: 'right', display: 'flex', alignItems: 'center', justifyContent: 'flex-end', gap: '4px' }}>
{getPnlIcon(statistics.averagePnl)}
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{formatUSDC(statistics.averagePnl)} USDC</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px', borderBottom: '1px solid #f0f0f0' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.maxPnl') || '最大盈亏'}
</div>
<div style={{ fontSize: '16px', fontWeight: '500', color: getPnlColor(statistics.maxPnl), flex: '1', textAlign: 'right', display: 'flex', alignItems: 'center', justifyContent: 'flex-end', gap: '4px' }}>
{getPnlIcon(statistics.maxPnl)}
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{formatUSDC(statistics.maxPnl)} USDC</span>
</div>
</div>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '12px' }}>
<div style={{ fontSize: '14px', color: '#666', flex: '0 0 auto', marginRight: '12px' }}>
{t('copyTradingOrders.minPnl') || '最小盈亏'}
</div>
<div style={{ fontSize: '16px', fontWeight: '500', color: getPnlColor(statistics.minPnl), flex: '1', textAlign: 'right', display: 'flex', alignItems: 'center', justifyContent: 'flex-end', gap: '4px' }}>
{getPnlIcon(statistics.minPnl)}
<span style={{ fontSize: 'clamp(12px, 4vw, 16px)' }}>{formatUSDC(statistics.minPnl)} USDC</span>
</div>
</div>
</div>
) : (
<div>
@@ -209,12 +161,6 @@ const StatisticsModal: React.FC<StatisticsModalProps> = ({
prefix={<ArrowDownOutlined style={{ color: '#ff4d4f' }} />}
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.totalMatchedOrders') || '总匹配订单数'}
value={statistics.totalMatchedOrders || 0}
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.totalBuyAmount') || '总买入金额'}
@@ -258,40 +204,6 @@ const StatisticsModal: React.FC<StatisticsModalProps> = ({
prefix={getPnlIcon(statistics.totalUnrealizedPnl)}
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.winRate') || '胜率'}
value={formatPercent(statistics.winRate)}
suffix="%"
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.averagePnl') || '平均盈亏'}
value={formatUSDC(statistics.averagePnl)}
suffix="USDC"
valueStyle={{ color: getPnlColor(statistics.averagePnl) }}
prefix={getPnlIcon(statistics.averagePnl)}
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.maxPnl') || '最大盈亏'}
value={formatUSDC(statistics.maxPnl)}
suffix="USDC"
valueStyle={{ color: getPnlColor(statistics.maxPnl) }}
prefix={getPnlIcon(statistics.maxPnl)}
/>
</Col>
<Col xs={24} sm={12} md={8}>
<Statistic
title={t('copyTradingOrders.minPnl') || '最小盈亏'}
value={formatUSDC(statistics.minPnl)}
suffix="USDC"
valueStyle={{ color: getPnlColor(statistics.minPnl) }}
prefix={getPnlIcon(statistics.minPnl)}
/>
</Col>
</Row>
</div>
)}
@@ -1,5 +1,4 @@
import { useState, useEffect } from 'react'
import { useParams, useSearchParams } from 'react-router-dom'
import { Modal, Tabs } from 'antd'
import { useTranslation } from 'react-i18next'
import BuyOrdersTab from './BuyOrdersTab'