From b780f0e03066eee18a1310c809e11487f2fa011e Mon Sep 17 00:00:00 2001 From: tlartem Date: Mon, 21 Jul 2025 05:40:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9?= =?UTF-8?q?=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TemplateManager/HeaderBar.tsx | 14 ++- .../TemplateManager/TemplateCard.tsx | 11 +- .../TemplateManager/TemplateEditor.tsx | 11 ++ .../TemplateManager/VisualLayoutEditor.tsx | 52 +++++--- src/pages/ElementsCreation/Page.tsx | 112 +++++++++--------- 5 files changed, 112 insertions(+), 88 deletions(-) diff --git a/src/components/TemplateManager/HeaderBar.tsx b/src/components/TemplateManager/HeaderBar.tsx index 656dc02..f75486b 100644 --- a/src/components/TemplateManager/HeaderBar.tsx +++ b/src/components/TemplateManager/HeaderBar.tsx @@ -1,6 +1,6 @@ import { Button } from '@/components/ui/button' import { Template } from '@/types/template' -import { ArrowLeft, FileText, Wrench } from 'lucide-react' +import { ArrowLeft, FileText, Settings, Wrench } from 'lucide-react' import React from 'react' import { useNavigate } from 'react-router-dom' @@ -19,11 +19,13 @@ export const HeaderBar: React.FC = ({ template, onBack }) => { -
-

{template.name}

-

- Настройте Excel шаблон и значения отчета -

+
+ +

Редактор шаблонов

+ + + {template.name} +
diff --git a/src/components/TemplateManager/TemplateCard.tsx b/src/components/TemplateManager/TemplateCard.tsx index eddee43..3ccfc2c 100644 --- a/src/components/TemplateManager/TemplateCard.tsx +++ b/src/components/TemplateManager/TemplateCard.tsx @@ -18,6 +18,11 @@ const TemplateCard: React.FC = ({ }) => { const navigate = useNavigate() + // Шаблон считается готовым, когда есть хотя бы один элемент и загружена + // Excel-таблица (что подтверждается наличием mergedCells). + const isConfigured = + template.elements.length > 0 && (template.mergedCells?.length ?? 0) > 0 + return ( @@ -41,13 +46,11 @@ const TemplateCard: React.FC = ({ -
- - ) - } - - // Если шаблон не найден - if (!selectedTemplate) { - return ( -
-
- -

- Шаблон не найден -

-

- Выбранный шаблон не существует или был удален -

- +
+
+ {isLoading && 'Загрузка шаблона...'} + {error && `Ошибка загрузки: ${error}`} + {!selectedTemplate && 'Шаблон не найден'}
) } return ( -
-
-
+
+
+
- -

Редактор элементов

+ +

Редактор шаблонов

{selectedTemplate.name}
- - {/* Индикатор сохранения */} - {isSaving && ( -
-
- Сохранение... -
- )} +
+
+ +
+ {/* Индикатор сохранения */} + {isSaving && ( +
+
+ Сохранение... +
+ )} +