2.1 KiB
2.1 KiB
Архитектура фронта arm-core/web
SPA поверх API arm-core (/api/v1). Своих данных и бизнес-вычислений нет: всё производное (чек-лист, сводная ОСВ,
статусы) считает сервер, фронт показывает и отправляет действия пользователя. До 21.10.2026 фронт вёлся в отдельном
репозитории RSHB/arm-web и переносился сюда синхронизацией; теперь — только здесь.
Модули
| Модуль | Ответственность | Зависит от |
|---|---|---|
src/api/ |
HTTP-клиент, токен, разбор ошибок | conf/, auth/token |
src/auth/ |
профиль /me, dev-вход, права для меню |
api/ |
src/services/api/ |
вызовы ресурсов arm-core | api/, types/ |
src/store/ |
состояние экранов (Redux Toolkit) | services/api/ |
src/utils/ |
чистые функции: деньги, подписи, скачивание | types/ |
src/types/ |
DTO API (повторяют ../api/src/schemas/) |
— |
src/components/ |
примитивы UI (таблица, теги, заголовок) | antd |
src/widgets/ |
блоки экранов (DocumentReview — проверка документа со сканом, ConsolidatedOsv — сводная ОСВ, FilesDrawer) |
components/, store/, services/api/, utils/ |
src/layouts/ |
страницы-маршруты | widgets/ |
Границы
- Сетевые запросы — только через
src/api/client.ts;fetchнапрямую не вызывается. components/не знают про store и API;types/ни от чего не зависят.utils/не импортирует React, store и API.
Сборка
npm run build → web/dist, Dockerfile ядра кладёт его в api/web/ и FastAPI отдаёт SPA (../README.md).