Концепция UI#
1. Стек UI#
Frontend: Vue 3 + Vite (референсный runtime
../ioot-pro-cabinet).Контуры: tenant UI, master UI, локальный HMI.
Архитектура экрана: двухколоночный layout (
Sidebar,Content) с popup Infobar.Runtime маршрутов: универсальный контейнер экрана (RouteContent-подход).
Фактический статус runtime: базовые карточные модули и auth/passkey flow реализованы, а shell baseline уже вынесен в отдельные layout/components/composables с viewport-contained scroll surface и явным frontend typing baseline.
2. UX-принципы#
Mobile-oriented UI.
Mobile-first адаптивная сетка.
Единый UX на телефон/планшет/десктоп.
Минимизация глубины навигации для операторских сценариев.
Согласованное поведение UI в модульной карточной модели: карточка/карта.
3. Модульная модель UI#
Модули представлены в основном окне приложения, каждый модуль — отдельная карточка.
Карточка имеет три состояния:
свёрнутая (
минимальный виджет);развернутая (
рабочий виджет);полноэкранная (
работа в карточке).
По объекту карточки открывается инфобар в popup с полным набором инструментов.
Справочник, настройки и дополнительные элементы скрыты в бургер-меню.
Отдельные полноэкранные представления (карта, пульт) размещаются кнопками быстрого вызова в верхнем правом углу интерфейса.
4. Базовая компоновка#
Базовый layout:
навигация;
рабочая зона схем/графиков/состояний (карточки модулей).
Навигация и виджеты управляются конфигурацией (schema-driven, JSON-driven).
Карты используются для объектов с геопривязкой.
Infobar реализуется как popup и используется для детального объекта и истории.
5. Экранные роли#
Оператор: мониторинг, тревоги, команды.
Инженер: диагностика, параметры, профили устройств.
Администратор: подписки, политики, доступы.
6. Нефункциональные требования UI#
Работа в деградированном канале связи.
Предсказуемое поведение при частичной недоступности backend.
Стабильная работа на 10» HMI и мобильных устройствах.
7. Контракты UI -> API#
Глобальный контракт данных UI:
GET /api/v1/<resource>/listGET /api/v1/<resource>/scheme
Контекст маршрута в заголовках:
X-Route-PathX-Route-ModuleX-Route-Filter
Версия клиента в заголовках:
X-Client-VersionX-Client-Build-Time
8. Рантайм навигации#
Состав модулей, папок и меню приходит с backend-каталога.
Каталог модулей использует параметры:
display_moduleshow_filtersmodule_view
Разрешено расширение каталога новыми параметрами без изменения базового каркаса.
9. Контроль качества#
Обязательные проверки перед релизом UI:
i18n check;
unit/integration tests;
production build;
smoke основных endpoint-ов.
i18n-политика:
русский как source-locale;
синхронизация ключей на поддерживаемые языки.
PWA:
service worker, auto-update, offline-ready режим поддерживаются как базовая опция.