harness
🧱 Этап 1: Создание обвязки
-
Создание структуры АРМа
- Скопировать
pages/arms/_armForCopy→pages/arms/sorting - Заменить все вхождения
_armForCopy→sorting - Удалить ненужные заготовки
- Скопировать
-
Подключение API типизации
-
Использовать DTO из
shared/api/generated/api.generated.ts:SortingDocumentResponseDto
-
В
pages/arms/sorting/model/type/api.ts:export type OperationResponseDto = SortingDocumentResponseDto;
-
-
Настройка хуков
- Создать
pages/arms/sorting/lib/hooks/useSorting.ts - Реализовать в нём вызовы API, управление состоянием, побочные эффекты
- Создать
🛣 Этап 2: Роутинг
-
shared/const/router.ts
- Добавить в
AppRoutes,ArmRoutes,PageDescription - Использовать
getArmRoute("sorting")
- Добавить в
-
app/router/config/routeConfig.tsx
{
path: getArmRoute('sorting'),
element: <SortingArmPageWrapper />
}
💾 Этап 3: Стейт и контексты
-
Контекст
pages/arms/sorting/model/store/ArmContext.tsx- Включить: batchId, sorterId, список контейнеров, sku и т.п.
-
Обёртка страницы
pages/arms/sorting/ui/SortingArmPageWrapper.tsx- Подключение контекста и FSM
🔄 Этап 5: Интеграция с API
Описывается раньше по авто доке
| Метод | Описание |
|---|---|
GET /sorting/search | Поиск батча |
POST /sorting/{batch}/join | Старт сортировки |
POST /sorting/{batch}/enter-barcode | Контейнер, SORTER, SKU |
POST /sorting/{batch}/enter-sku-batch | Ввод партии |
POST /sorting/{batch}/enter-quantity | Кол-во |
POST /sorting/{batch}/enter-serial-number | Сериал |
POST /sorting/{batch}/confirm-temp-containers-prepared | Временные контейнеры |
GET /sorting/{batch}/not-sorted | Таб неотсортировано |
POST /sorting/{batch}/item-not-available | Жалоба |
POST /sorting/{batch}/upload-issue-photo | Фото жалобы |
POST /sorting/{batch}/cancel | Отмена позиции |
POST /sorting/{batch}/leave | Выход из сортировки |
🧪 Этап 6: UI-компоненты
EnterBarcodeForm— ввод ШК батчаSorterScanForm/TempContainerReady— выбор контейнераSkuScanForm,BatchInput,QuantityInput— товарSerialInput— серийный номерIssueForm— жалобаNotSortedTable— вкладка «неотсортировано»- Кнопки выхода, отмены, проверки
🧪 Этап 7: Тестирование и отладка
- Проверка FSM
- Проверка переходов и API
- Тестирование edge-кейсов
- Обработка ошибок, блокировок, отмен и выхода