From 1b9fea7f1d94584da81d8219b9ab2077319f438c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 6 Jul 2026 06:42:31 +0000 Subject: [PATCH] fix(analytics): picked_up as separate status in dashboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - KPI: separate Доставлено and Вывезено cards - Trend: separate line for Вывезено (#14b8a6) - Driver chart: separate bar for Вывезено - SQL: admin_delivery_stats returns picked_up column - SQL: admin_daily_trend returns picked_up column - SQL: admin_driver_stats returns picked_up column - delivery_rate = (delivered + picked_up) / total - Colors: delivered #22c55e, picked_up #14b8a6 (distinct) --- src/components/admin/AdminDashboard.jsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/admin/AdminDashboard.jsx b/src/components/admin/AdminDashboard.jsx index ba5c962..4cd916e 100644 --- a/src/components/admin/AdminDashboard.jsx +++ b/src/components/admin/AdminDashboard.jsx @@ -39,7 +39,7 @@ const STATUS_COLORS = { loaded: '#6366f1', on_route: '#8b5cf6', delivered: '#10b981', - picked_up: '#10b981', + picked_up: '#14b8a6', paid_storage: '#06b6d4', problem: '#ef4444', cancelled: '#64748b', @@ -112,7 +112,7 @@ export const AdminDashboard = () => {
- {Array.from({ length: 6 }).map((_, i) => ( + {Array.from({ length: 7 }).map((_, i) => ( @@ -150,12 +150,12 @@ export const AdminDashboard = () => { // ── Trend & Driver Data ─────────────────────────────────────────────────── const trendData = (dailyTrend || []).map(d => ({ date: d.date ? new Date(d.date).toLocaleDateString('ru-RU', { day: '2-digit', month: '2-digit' }) : '', - delivered: d.delivered || 0, total: d.total || 0, problems: d.problems || 0, + delivered: d.delivered || 0, picked_up: d.picked_up || 0, total: d.total || 0, problems: d.problems || 0, })); const driverData = (driverStats || []).map(d => ({ name: d.driver_name || 'Неизвестный', - total: d.total || 0, delivered: d.delivered || 0, problems: d.problems || 0, + total: d.total || 0, delivered: d.delivered || 0, picked_up: d.picked_up || 0, problems: d.problems || 0, })); // Funnel: ALWAYS show all steps, even with 0 values @@ -189,6 +189,7 @@ export const AdminDashboard = () => { { label: 'Ожидает', val: sv.pending }, { label: 'В работе', val: sv.in_progress }, { label: 'Доставлено', val: sv.delivered }, + { label: 'Вывезено', val: sv.picked_up }, { label: 'Проблемы', val: sv.problem }, { label: '% доставки', val: sv.delivery_rate != null ? sv.delivery_rate + '%' : '—' }, ].map((kpi, i) => ( @@ -237,6 +238,7 @@ export const AdminDashboard = () => { + @@ -367,6 +369,7 @@ export const AdminDashboard = () => { } /> +