From 2ef4c6ae86b66118465010227809466cd9cf256c Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Fri, 23 Oct 2026 00:50:58 +0400 Subject: [PATCH] =?UTF-8?q?docs(web):=20lucide-react=20=D0=B2=20=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D0=B5,=20=D0=B2=D0=B8=D0=B4=D0=B6=D0=B5?= =?UTF-8?q?=D1=82=D1=8B=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B2=20ARCHITECTURE=20(PR=20#166)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- web/ARCHITECTURE.md | 16 +++++++++++++++- web/CLAUDE.md | 6 +++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/web/ARCHITECTURE.md b/web/ARCHITECTURE.md index e73ada3..fb4b4fd 100644 --- a/web/ARCHITECTURE.md +++ b/web/ARCHITECTURE.md @@ -15,9 +15,23 @@ SPA поверх API arm-core (`/api/v1`). Своих данных и бизне | `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/widgets/` | блоки экранов (`DocumentReview` — проверка документа со сканом, `ConsolidatedOsv` — сводная ОСВ, `FilesDrawer`; консолидации — см. ниже) | `components/`, `store/`, `services/api/`, `utils/` | | `src/layouts/` | страницы-маршруты | `widgets/` | +### Виджеты экранов консолидаций + +Требования — `../openspec/changes/consolidations-ui/` (после архивации — `../openspec/specs/consolidations-ui/`), +`consolidation-setup`, `consolidated-osv-ui`. + +| Виджет | Экран | Что делает | +|---|---|---| +| `ConsoleTable/ConsoleTable.tsx` | [34] | список консолидаций ГК: дерево версий, «Только в работе» (`in_work_only`), действия строки, меню «⋯» | +| `ConsoleTable/LockModal.tsx` | [35] | «Взять в работу» (`POST …/lock`) и перехват с причиной (`takeover_reason`) | +| `ConsoleTable/consts.ts` | — | подписи, цвета и пояснения статусов версии — одно место для списка, карточки и модалки | +| `ConsoleLegalEntities/` | [34] | панель «Организации» выбранной версии и чек-лист | +| `NewConsoleModal/` (`CompanyOptionRow.tsx`) | [42] | «Новая консолидация»; строка ЮЛ с ИНН отдельной колонкой | +| `StatusChangeModal/ChangeStatusModal.tsx` | [33-01] | «Изменить статус» (`POST …/status`); открывается из шапки `layouts/ConsolidatedOsvPage.tsx` | + ## Границы - Сетевые запросы — только через `src/api/client.ts`; `fetch` напрямую не вызывается. - `components/` не знают про store и API; `types/` ни от чего не зависят. diff --git a/web/CLAUDE.md b/web/CLAUDE.md index dc42da7..fd5edcd 100644 --- a/web/CLAUDE.md +++ b/web/CLAUDE.md @@ -27,6 +27,9 @@ arm-web перенесены в arm-core #150–#157 (arm-web#7 → #151), сп ## Стек и ограничения - React 18 + TypeScript strict, rsbuild, antd 6 (основной UI-кит; daisyui/tailwind — из шаблона), react-router 7, Redux Toolkit, pdfjs-dist (legacy-сборка — для Яндекс Браузера, см. `src/widgets/DocumentReview/pdfjs.ts`). +- Иконки: основная библиотека — `@ant-design/icons`; вторая — `lucide-react` (зафиксированная версия), только для иконок + макета, которых в antd нет (боковое меню, «Взять в работу», «К отчётности», меню «⋯» консолидации). Новую иконку сначала + ищем в `@ant-design/icons`. - Пакеты `raisa-*` — `optionalDependencies` (вне банка недоступны); `package-lock.json` в git не хранится (в банке зависимости ставятся через Nexus). В контуре `package.json` урезается до сборки (`../../docs/dev/contour-transfer-guide.md` §3.2): новые пакеты, нужные сборке, добавлять и в разрешённый список там. @@ -46,7 +49,8 @@ arm-web перенесены в arm-core #150–#157 (arm-web#7 → #151), сп - `src/store/` — Redux Toolkit: `store.ts`, слайсы `companyGroupsSlice` и `consolidations` (+ `thunks.ts`). - `src/layouts/` — страницы (маршруты в `src/App.tsx`, в т.ч. `/documents/:document_id` и `/groups/:group_id/versions/:version_id/osv`), `src/widgets/` — блоки экранов (`DocumentReview` — проверка ББ/ОФР/ОСВ - со сканом, `ConsolidatedOsv` — сводная ОСВ, `FilesDrawer` — файлы ЮЛ), `src/components/` — примитивы + со сканом, `ConsolidatedOsv` — сводная ОСВ, `FilesDrawer` — файлы ЮЛ, `ConsoleTable` — список консолидаций ГК и + «Взять в работу», `StatusChangeModal` — «Изменить статус» версии), `src/components/` — примитивы (`GenericTable`, `TableTag`, `PageTitle`), `src/types/` — DTO API. ## Команды (из `web/`)