fix(ui): отделить ошибки статистики от пустых данных
This commit is contained in:
1 parent
3898881d8a
commit
167e19cd91
4 files changed
+135
-25
No files matched your search
@@ -22,13 +22,20 @@
|
||||
| 5 | Состояния данных, свежесть, частичные сбои, гонки polling | Завершён 2026-09-20 для дашборда; границы проверок ниже |
|
||||
| 6 | Навигация и дашборд | Завершён 2026-09-20 в границах локальной приёмки; ограничения ниже |
|
||||
| 7 | Серверы и мониторинг: детали, формы, URL-контекст, права | Завершён в границах локальной приёмки 2026-09-23; внешние ограничения ниже |
|
||||
| 8 | Трафик и статистика | Не начат |
|
||||
| 8 | Трафик и статистика | В работе: 8.1 — состояния статистики; далее периоды/URL и live-трафик |
|
||||
| 9 | VPN, Firewall и Filters | Не начат |
|
||||
| 10 | Маршрутизация, диагностика, карта и терминал | Не начат |
|
||||
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Не начат |
|
||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Не начат |
|
||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Не начат |
|
||||
|
||||
## Блок 8.1 — достоверность состояния статистики (2026-09-23)
|
||||
|
||||
- Новый план docs/ux-ui-stage-8.md с референсами и схемой. Результат статистики привязан к ключу backend/режим/период/срез/view/pivot/planes/повтор. Старый отчёт не выводится под новым контекстом; отменённый эффект не применяет поздний ответ.
|
||||
- Ошибка API не показывает нулевые KPI, график и «Нет данных куба». Кнопка «Повторить загрузку» повторяет текущий запрос; подтверждённый пустой ответ по-прежнему показывает нули и пустое состояние. Данные и pivot публикуются после завершения всей цепочки запроса.
|
||||
- Проверки: 4 новых E2E (403/500 + повтор с пустым ответом, задержка/гонка периодов, ошибка pivot) и существующий сценарий статистики из migrated-tables прошли. ESLint страницы/тестов чистый; production build с TypeScript прошёл, 34 страницы. Скриншот ошибки просмотрен. Использованы прежние Alert/Button/KpiStatGrid/DataGrid, без изменения темы/установленных примитивов.
|
||||
- Ограничение: при сбое pivot сейчас скрыт весь отчёт, частично загруженный основной ответ отдельно не показывается. Последний успешный отчёт не сохраняется как отдельный доступный пользователю снимок. Следующий блок 8.2 — строгие периоды и URL, затем live/история трафика. На проверке использовано 44% пятичасовой / 38% недельной квоты. Коммит локальный без push.
|
||||
|
||||
## Завершение этапа 7 — локальная приёмка (2026-09-23)
|
||||
|
||||
- 94 профильных E2E dashboard-data/servers/uptime-links прошли. Включены сквозные сценарии сервера и Ping-проверки из очереди дашборда, права, ошибки/повторы операций, URL-контекст, формы и адаптивность. Сценарий Ping с действием и возвратом уже существует в uptime-links.spec.ts («очередь проверок…»); ранее он ошибочно оставался в списке следующих шагов журнала.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# Этап 8: трафик и статистика
|
||||
|
||||
Основа: установленные ReUI PRO/base-nova, Frame, KpiStatGrid, DataGrid, Filters и DateSelector. Каждый законченный блок — профильные проверки, журнал и локальный коммит без push.
|
||||
|
||||
| Блок | Результат | Приёмка |
|
||||
| --- | --- | --- |
|
||||
| 8.1 | Данные статистики привязаны к периоду/срезу; ошибка не равна нулю; повтор запроса | Задержка нового периода, 403/500, успешный пустой ответ, поздний ответ |
|
||||
| 8.2 | Валидные периоды, URL-контекст, единицы | Ошибочные даты, история, срезы и pivot |
|
||||
| 8.3 | Разделение live и истории трафика; состояния потока и polling | Разрыв SSE, смена интерфейса/периода, неизвестные значения и гонки |
|
||||
| 8.4 | Связь графиков/таблиц и мобильная приёмка | Общий период/объект, пустые состояния, 320/390/1440 px |
|
||||
|
||||
| Область | Референс | Схема |
|
||||
| --- | --- | --- |
|
||||
| Фильтры и таблицы | [Data Grid Filtering 2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Период → срез → график → строки того же запроса |
|
||||
| Сводка | [Stats 12](https://reui.io/preview/base/stats-12?ref=mcp) | Контекст → подтверждённые метрики → детали |
|
||||
|
||||
```text
|
||||
[Период] [Срезы] [История / live]
|
||||
↓ один контекст запроса
|
||||
[Загрузка / Ошибка + повтор / Подтверждённые данные]
|
||||
[Метрики] → [График] → [Таблица] → [Уточнить срез]
|
||||
```
|
||||
|
||||
Исходные наблюдения 2026-09-23:
|
||||
- Statistics оставляет прежний data/pivot до ответа нового запроса; catch подставляет EMPTY, совмещая ошибку с нулями и «Нет данных куба».
|
||||
- readRange сравнивает строки без строгой проверки даты; parseYmd нормализует несуществующие дни через JavaScript Date. Проверить в 8.2.
|
||||
- useTrafficLive требует отдельной проверки завершения SSE и позднего ответа после abort в 8.3; это пока риск, а не доказанный дефект UI.
|
||||
- Реальный IPFIX/RouterOS недоступен локально. HTTP/SSE-моки не доказывают сбор и точность сетевой телеметрии.
|
||||
Reference in new issue
Block a user