import dayjs from 'dayjs'; import { isPlainObject } from 'lodash'; import JsonView from 'react18-json-view'; import 'react18-json-view/src/style.css'; import { Bar, BarChart, CartesianGrid, Legend, Rectangle, ResponsiveContainer, Tooltip, XAxis, } from 'recharts'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { ScrollArea } from '@/components/ui/scroll-area'; import { formatDate, formatTime } from '@/utils/date'; import ServiceDetail from './service-detail'; interface TaskExecutorDetailProps { content?: AdminService.TaskExecutorInfo; } function CustomTooltip({ active, payload, ...restProps }: any) { if (active && payload && payload.length) { const item = payload.at(0)?.payload ?? {}; return ( {formatDate(restProps.label)}
); } return null; } function CustomAxisTick({ x, y, payload }: any) { return ( {formatTime(payload.value)} ); } function TaskExecutorDetail({ content }: TaskExecutorDetailProps) { if (!isPlainObject(content)) { return ; } return (
{Object.entries(content ?? {}).map(([name, data]) => { console.log(data); const items = data.map((x) => ({ ...x, done: Math.floor(Math.random() * 100), failed: Math.floor(Math.random() * 100), now: dayjs(x.now).valueOf(), })); const lastItem = items.at(-1); return ( {name}
Lag: {lastItem?.lag} Pending: {lastItem?.pending}
{/* */} } /> } />
); })}
); } export default TaskExecutorDetail;