From df3558b63ae3e82221ee56d668ffab4bd1ce11a0 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Wed, 29 Jul 2026 17:08:52 +0500 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ApprovalAdmin.tsx | 7 +- .../approvalAdmin/components/app/TopNav.tsx | 13 +- .../screens/DashboardScreen.module.scss | 17 + .../components/screens/DashboardScreen.tsx | 43 ++- .../components/screens/RequestTypesScreen.tsx | 134 +++---- .../screens/ResolveScreen.module.scss | 3 + .../components/screens/ResolveScreen.tsx | 133 +++---- .../components/screens/RouteFormModal.tsx | 188 ++++++++++ .../components/screens/RouteStepFormModal.tsx | 206 +++++++++++ .../components/screens/RouteStepsScreen.tsx | 327 +++--------------- .../screens/RoutesScreen.module.scss | 4 + .../components/screens/RoutesScreen.tsx | 327 ++++-------------- .../components/ui/ActionsCell.tsx | 7 + .../components/ui/AsyncSearchableSelect.tsx | 11 +- .../components/ui/Breadcrumbs.tsx | 27 ++ .../approvalAdmin/components/ui/Button.tsx | 15 - .../approvalAdmin/components/ui/CardGrid.tsx | 11 + .../approvalAdmin/components/ui/CellNote.tsx | 17 + .../approvalAdmin/components/ui/Checkbox.tsx | 22 ++ .../components/ui/ConfirmDialog.tsx | 33 ++ .../approvalAdmin/components/ui/DataTable.tsx | 17 - .../approvalAdmin/components/ui/Field.tsx | 24 ++ .../approvalAdmin/components/ui/FormField.tsx | 111 ------ .../approvalAdmin/components/ui/FormGrid.tsx | 11 + .../approvalAdmin/components/ui/FormModal.tsx | 37 ++ .../components/ui/Icon.module.scss | 9 + .../approvalAdmin/components/ui/Icon.tsx | 17 +- .../components/ui/IconButton.tsx | 19 + .../approvalAdmin/components/ui/Modal.tsx | 28 +- .../components/ui/{Card.tsx => NavCard.tsx} | 16 +- .../ui/{PageChrome.tsx => PageHeader.tsx} | 21 +- .../components/ui/Panel.module.scss | 10 + .../approvalAdmin/components/ui/Panel.tsx | 11 + .../components/ui/PrimaryCell.tsx | 7 + .../components/ui/RadioGroup.tsx | 40 +++ .../components/ui/SearchableSelect.tsx | 15 +- .../approvalAdmin/components/ui/Select.tsx | 21 ++ .../approvalAdmin/components/ui/StatCard.tsx | 14 + .../approvalAdmin/components/ui/StatRow.tsx | 11 + .../approvalAdmin/components/ui/TextInput.tsx | 6 + .../approvalAdmin/components/ui/Textarea.tsx | 6 + .../approvalAdmin/components/ui/index.ts | 23 +- .../approvalAdmin/hooks/useAsyncList.ts | 34 ++ .../approvalAdmin/hooks/useAsyncSubmit.ts | 30 ++ .../approvalAdmin/hooks/useDeleteTarget.ts | 40 +++ .../hooks/usePortalDictionaries.ts | 39 +++ .../approvalAdmin/hooks/useRequestTypes.ts | 10 + .../approvalAdmin/hooks/useResolveRoute.ts | 27 ++ .../approvalAdmin/hooks/useRouteSteps.ts | 17 + .../approvalAdmin/hooks/useTemplateRoutes.ts | 10 + .../approvalAdmin/models/dictionaries.ts | 24 ++ .../webparts/approvalAdmin/models/enums.ts | 30 ++ .../webparts/approvalAdmin/models/index.ts | 227 +----------- .../approvalAdmin/models/requestTypes.ts | 19 + .../webparts/approvalAdmin/models/resolve.ts | 28 ++ .../models/templateRouteSteps.ts | 45 +++ .../approvalAdmin/models/templateRoutes.ts | 39 +++ frontend/src/webparts/approvalAdmin/texts.ts | 240 +++++++++++++ .../src/webparts/approvalAdmin/utils/guid.ts | 10 + .../webparts/approvalAdmin/utils/plural.ts | 16 + .../approvalAdmin/utils/stepExecutor.ts | 28 ++ 61 files changed, 1743 insertions(+), 1189 deletions(-) create mode 100644 frontend/src/webparts/approvalAdmin/components/screens/DashboardScreen.module.scss create mode 100644 frontend/src/webparts/approvalAdmin/components/screens/ResolveScreen.module.scss create mode 100644 frontend/src/webparts/approvalAdmin/components/screens/RouteFormModal.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/screens/RouteStepFormModal.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/screens/RoutesScreen.module.scss create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/ActionsCell.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Breadcrumbs.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/CardGrid.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/CellNote.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Checkbox.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/ConfirmDialog.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Field.tsx delete mode 100644 frontend/src/webparts/approvalAdmin/components/ui/FormField.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/FormGrid.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/FormModal.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Icon.module.scss create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/IconButton.tsx rename frontend/src/webparts/approvalAdmin/components/ui/{Card.tsx => NavCard.tsx} (57%) rename frontend/src/webparts/approvalAdmin/components/ui/{PageChrome.tsx => PageHeader.tsx} (55%) create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Panel.module.scss create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Panel.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/PrimaryCell.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/RadioGroup.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Select.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/StatCard.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/StatRow.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/TextInput.tsx create mode 100644 frontend/src/webparts/approvalAdmin/components/ui/Textarea.tsx create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useAsyncList.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useAsyncSubmit.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useDeleteTarget.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/usePortalDictionaries.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useRequestTypes.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useResolveRoute.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useRouteSteps.ts create mode 100644 frontend/src/webparts/approvalAdmin/hooks/useTemplateRoutes.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/dictionaries.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/enums.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/requestTypes.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/resolve.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/templateRouteSteps.ts create mode 100644 frontend/src/webparts/approvalAdmin/models/templateRoutes.ts create mode 100644 frontend/src/webparts/approvalAdmin/texts.ts create mode 100644 frontend/src/webparts/approvalAdmin/utils/guid.ts create mode 100644 frontend/src/webparts/approvalAdmin/utils/plural.ts create mode 100644 frontend/src/webparts/approvalAdmin/utils/stepExecutor.ts diff --git a/frontend/src/webparts/approvalAdmin/components/ApprovalAdmin.tsx b/frontend/src/webparts/approvalAdmin/components/ApprovalAdmin.tsx index d4f0df1..7064d0c 100644 --- a/frontend/src/webparts/approvalAdmin/components/ApprovalAdmin.tsx +++ b/frontend/src/webparts/approvalAdmin/components/ApprovalAdmin.tsx @@ -5,6 +5,7 @@ import { AdminApp } from './app/AdminApp'; import { ApprovalRouteApi } from '../services/api'; import { AadApiHttpClient, DevApiHttpClient, IHttpClient } from '../services/httpClient'; import { PortalDictionaryClient } from '../services/portalDictionary'; +import { texts } from '../texts'; const FONTS_LINK_ID = 'tnsu-approval-admin-fonts'; @@ -69,12 +70,12 @@ const ApprovalAdmin: React.FC = props => {
{error && (
- Не удалось подключиться к API: {error} + {texts.app.connectFailed(error)}
- Проверьте свойства веб-части (Api Base Url, режим авторизации) в панели настроек. + {texts.app.connectHint}
)} - {!error && !api &&
Подключение к API...
} + {!error && !api &&
{texts.app.connecting}
} {api && ( = ({ active, onSelect }) => { return (