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-кейсов
- Обработка ошибок, блокировок, отмен и выхода