feat: add FunnelChart, RevenueChart, ObjectTypeChart, AvgTimeChart

This commit is contained in:
2026-05-07 20:29:06 +03:00
parent ff84f89f29
commit b19ab501cb
4 changed files with 114 additions and 0 deletions
@@ -0,0 +1,25 @@
import React from 'react';
import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid } from 'recharts';
const RevenueChart = ({ data }) => (
<div>
<h3 style={{ fontFamily: 'var(--font-heading)', fontSize: '0.95rem', fontWeight: 700, marginBottom: '14px' }}>
Выручка по месяцам ()
</h3>
{data.length === 0 ? (
<p style={{ color: 'var(--text-muted)', fontSize: '0.85rem', textAlign: 'center', padding: '40px 0' }}>Нет закрытых заказов</p>
) : (
<ResponsiveContainer width="100%" height={210}>
<LineChart data={data} margin={{ left: 10, right: 20 }}>
<CartesianGrid strokeDasharray="3 3" stroke="rgba(15,23,42,0.05)" />
<XAxis dataKey="month" tick={{ fontSize: 11, fill: '#94a3b8' }} />
<YAxis tick={{ fontSize: 11, fill: '#94a3b8' }} tickFormatter={(v) => `${(v / 1000).toFixed(0)}к`} />
<Tooltip formatter={(v) => [`${v.toLocaleString('ru-RU')}`, 'Выручка']} />
<Line type="monotone" dataKey="revenue" stroke="var(--accent-blue)" strokeWidth={2} dot={{ fill: 'var(--accent-blue)', r: 4 }} />
</LineChart>
</ResponsiveContainer>
)}
</div>
);
export default RevenueChart;