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;