Dashboard — главный экран админки
Первый экран после логина. Сейчас реализован как приветствие + информация о пользователе (placeholder). KPI-метрики, быстрые переходы и нотификации не реализованы.
Файл
erp-admin/web/src/pages/DashboardPage.tsx
Роут
GET / — default route после успешного логина.
Доступ
- Открыт всем аутентифицированным сотрудникам
- Permission-guard отсутствует — страница всегда видна
Текущая реализация
Приветствие:
- H2: «Добро пожаловать, {first_name}!»
Карточка «Информация о пользователе»:
- Имя (
first_name + last_name) - Роль (legacy: франшиза / франчайзи / менеджер / кассир — через маппинг
ROLE_LABELS) - Franchise ID (monospace)
- Количество торговых точек (
user.store_ids.length)
Что НЕ реализовано
- KPI-метрики (выручка за день, активные заказы, смены в процессе, стоп-листы)
- Быстрые переходы (виджеты со ссылками на Заказы / Сотрудники / Отчёты)
- Недавние события (последние закрытые смены, критичные алерты)
- Графики (выручка по дням, заказы по каналам)
Планируемые виджеты (Phase 2)
| Виджет | Источник данных | Permission |
|---|---|---|
| Активные заказы (число + ссылка) | Order Service GET /orders?status=new,in_progress | orders.read |
| Смены, требующие Z-отчёт (16h+) | User Service GET /dashboard/activity | time_tracking.read |
| Выручка за день по ТТ | Order Service GET /internal/orders/shift-report (агрегировано) | reports.read |
| Товары в стоп-листе | Catalog Service GET /stop-lists?store_id=... | stoplists.read |
| Последние созданные сотрудники | User Service GET /employees?sort=created_desc&limit=5 | employees.read |
Ссылки
- User Service — source для user info
- Ролевая модель