feat: add FunnelChart, RevenueChart, ObjectTypeChart, AvgTimeChart
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user