From 0868d3748434de7ca88421558515cf218d9d12cd Mon Sep 17 00:00:00 2001 From: Fedor Date: Tue, 25 Nov 2025 23:42:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B5=D1=81=D1=81=D0=B8=D1=8F=2026.11.20?= =?UTF-8?q?25:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20UI=20Wizard=20-=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8,=20retry=20?= =?UTF-8?q?=D0=B0=D1=83=D1=82=D0=B5=D0=BD=D1=82=D0=B8=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SESSION_LOG_2025-11-26_WIZARD_UI.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 ticket_form/SESSION_LOG_2025-11-26_WIZARD_UI.md diff --git a/ticket_form/SESSION_LOG_2025-11-26_WIZARD_UI.md b/ticket_form/SESSION_LOG_2025-11-26_WIZARD_UI.md new file mode 100644 index 00000000..c55aeb8f --- /dev/null +++ b/ticket_form/SESSION_LOG_2025-11-26_WIZARD_UI.md @@ -0,0 +1,55 @@ +# Сессия 26 ноября 2025 - Исправления UI Wizard + +## Основные изменения + +### 1. Исправлена ошибка Authentication failed в upload_documents_to_crm.php +- **Проблема:** Race condition при параллельных запросах к webservice CRM +- **Решение:** Добавлена функция `getWebserviceSession()` с retry механизмом (до 3 попыток) и случайной задержкой между попытками + +### 2. Исправлен Wizard Plan - чекбоксы заменены на блоки загрузки +- **Проблема:** Вопрос `docs_exist` показывал чекбоксы вместо полей загрузки файлов +- **Решение:** + - Скрыт вопрос `docs_exist` когда есть документы в плане + - Добавлены блоки загрузки файлов под карточкой "Документы, которые понадобятся" + +### 3. Чекбокс "У меня нет документа" перенесён под загрузку +- **Было:** Чекбокс показывался отдельно сверху +- **Стало:** Чекбокс внутри карточки, под Dragger (только для обязательных документов) + +### 4. Блоки загрузки сразу развёрнуты +- Добавлен useEffect с ref для автоматического создания блоков при загрузке плана +- Используется `createdDocBlocksRef` чтобы избежать дублирования + +### 5. Убраны лишние поля для предустановленных документов +- Для документов из плана (contract, payment, correspondence и т.д.): + - Нет поля "Уточните тип" (тип уже известен) + - Нет кнопки "Удалить" для первого блока +- Для дополнительных блоков - поля отображаются + +### 6. Исправлено дублирование блоков +- Убран дублирующий useEffect (для documentGroups) +- Добавлен ref `createdDocBlocksRef` для отслеживания созданных блоков +- Исправлена опечатка `React.useRef` → `useRef` + +## Файлы изменены + +1. `upload_documents_to_crm.php` - retry механизм для аутентификации +2. `ticket_form/frontend/src/components/form/StepWizardPlan.tsx`: + - Скрытие вопроса docs_exist + - Блоки загрузки под информационной карточкой + - Чекбокс под Dragger + - Автосоздание блоков при загрузке + - Улучшенная логика isPredefinedDoc + +## Коммиты + +1. `Добавлен retry механизм для webservice аутентификации (race condition fix)` +2. `Заменены чекбоксы docs_exist на блоки загрузки файлов` +3. `Исправлен JSX Fragment для блоков загрузки документов` +4. `Чекбокс 'нет документа' перенесён под блок загрузки` +5. `Блоки загрузки документов сразу развёрнуты при загрузке плана` +6. `Убраны лишние поля для предустановленных документов` +7. `Убран дублирующий useEffect для создания блоков документов` +8. `Исправлено дублирование блоков документов (ref для отслеживания созданных)` +9. `Исправлен React.useRef → useRef` +