import { Card, Progress, Space, Typography, Tag } from 'antd'; import { TrophyOutlined, CheckCircleOutlined, WarningOutlined, CloseCircleOutlined } from '@ant-design/icons'; import { getScoreLevel } from '../../api/reviewApi'; const { Title, Text } = Typography; interface ScoreCardProps { title: string; score: number; maxScore?: number; description?: string; showProgress?: boolean; size?: 'small' | 'default' | 'large'; } /** * 评分卡片组件 * 用于展示单项评分 */ const ScoreCard = ({ title, score, maxScore = 100, description, showProgress = true, size = 'default', }: ScoreCardProps) => { const { level, text, color } = getScoreLevel(score); // 获取等级图标 const getLevelIcon = () => { switch (level) { case 'excellent': return ; case 'good': return ; case 'fair': return ; case 'poor': return ; } }; // 根据size调整字体大小 const scoreFontSize = size === 'large' ? 56 : size === 'small' ? 32 : 44; const titleSize = size === 'large' ? 3 : size === 'small' ? 5 : 4; return ( {/* 标题 */}
{title} {text}
{/* 分数 */}
{score.toFixed(1)}
满分 {maxScore} 分
{/* 进度条 */} {showProgress && ( )} {/* 描述 */} {description && ( {description} )}
); }; export default ScoreCard;