/** * 绩效统计看板 — 展示绩效等级分布和部门/周期对比 */ import { useState } from 'react' import { useQuery } from '@tanstack/react-query' import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, BarChart, Bar, XAxis, YAxis, CartesianGrid, Legend } from 'recharts' import { Award, TrendingUp } from 'lucide-react' import api from '../../lib/api' const GRADE_COLORS: Record = { 'A': '#237A57', 'B': '#356A8A', 'C': '#A76113', 'D': '#B83232', 'S': '#C7442E', '未评级': '#9CA39B', } export default function PerformanceStats() { const [period, setPeriod] = useState(new Date().getFullYear().toString()) const { data, isLoading } = useQuery({ queryKey: ['performance-stats', period], queryFn: async () => { const res = await api.get(`/dashboard/performance-stats?period=${period}`) return res.data.data }, }) if (isLoading) { return (
) } if (!data || data.total === 0) { return (

绩效统计

暂无数据
) } return (

绩效统计

{/* 汇总 */}
参评人数 {data.total}
平均分 {data.overallAvgScore}
{/* 等级分布饼图 */}

等级分布

`${name}: ${value}`} labelLine={false} > {data.gradeDistribution.map((entry: any, i: number) => ( ))}
{/* 部门平均分柱状图 */}

部门平均分

) }