From b010e3ec4ac0168cb815207b62ec7f01baefb5f5 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Wed, 26 Aug 2026 14:13:07 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=C2=AB=D0=A1=D1=83=D0=BC=D0=BC=D1=8B=20=D0=BA=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8E=C2=BB=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B4=20=D1=81=D0=B5=D1=82=D0=BA=D0=BE=D0=B9=20=E2=80=94=20?= =?UTF-8?q?=C2=AB=D0=9E=D0=B1=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=C2=BB=20?= =?UTF-8?q?=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=B4?= =?UTF-8?q?=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D1=83=D0=B5=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=B2=D0=B8=D0=B7=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Без заголовка группы «Обучение» (WriteOffTrainingAmount, любой согласующий) читалось продолжением «Обучение: сумма» чуть выше (TrainingAmount, поле КДП) — два разных поля выглядели одним и тем же. Добавлена overline-подпись «Суммы к списанию» перед сеткой из 6 сумм — теперь понятно, что это отдельная группа. Co-Authored-By: Claude Opus 5 --- .../sections/RequestSection.module.scss | 16 ++++++ .../Clearance/sections/RequestSection.tsx | 54 +++++++++++-------- 2 files changed, 47 insertions(+), 23 deletions(-) create mode 100644 src/webparts/requestPortal/forms/Clearance/sections/RequestSection.module.scss diff --git a/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.module.scss b/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.module.scss new file mode 100644 index 0000000..7110a9a --- /dev/null +++ b/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.module.scss @@ -0,0 +1,16 @@ +@import '../../../../../styles/design-tokens'; + +// Заголовок группы полей ВНУТРИ секции (не отдельная CollapseSection) — нужен +// только затем, чтобы 6 сумм к списанию не читались продолжением полей выше +// (в частности — не путались с «Обучение: сумма», отдельным полем КДП чуть +// выше по форме: без подписи оба «Обучение» рядом выглядели одним и тем же). +.writeOffLabel { + grid-column: 1 / -1; + margin-top: $sp-2; + color: $gray-500; + font-family: $font-sans; + font-size: $fs-overline; + font-weight: 600; + letter-spacing: 1.4px; + text-transform: uppercase; +} diff --git a/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.tsx b/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.tsx index 965d58f..22b72c4 100644 --- a/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.tsx +++ b/src/webparts/requestPortal/forms/Clearance/sections/RequestSection.tsx @@ -1,6 +1,7 @@ import * as React from 'react'; import { CollapseSection, FormField, TextInput, MoneyInput, Toggle, PeopleField, OrganizationField, LinkField } from '../../../shared/ui'; import { ISectionProps, EMPLOYEE_PLACEHOLDER, WRITE_OFF_CATEGORIES } from '../model'; +import styles from './RequestSection.module.scss'; // Подразделение подтягивается автоматически при выборе сотрудника (см. // ClearanceForm.handleEmployeeChange — SharePoint User Profile) — свободный @@ -100,29 +101,36 @@ export const RequestSection: React.FC = ({ /> {/* Суммы к списанию — 6 независимых сумм, компактной сеткой (обычная - 2-колоночная сетка секции, короткие подписи — без full). Каждую может - заполнить ЛЮБОЙ активный согласующий (не только профильный, в отличие - от отметок выше) — но как только сумма указана, блокируется навсегда - для всех, поэтому у незаблокированных (writeOffEditableKeys.has(cat.key)) - есть readOnly={false}, у остальных — обычное поведение FormMode - (просмотр — заблокировано и так). «За что конкретно» — своего поля - здесь нет: заполнил хоть одну сумму — обязательным становится - СТАНДАРТНЫЙ комментарий решения в DecisionPanel («Ваше решение»), см. - ClearanceView (commentRequired/commentPlaceholder). */} - {writeOffEditableKeys && - WRITE_OFF_CATEGORIES.map((cat) => { - const editable = writeOffEditableKeys.has(cat.key); - return ( - - set(cat.amountField, v)} - readOnly={editable ? false : undefined} - /> - - ); - })} + 2-колоночная сетка секции, короткие подписи — без full). Заголовок + группы ОБЯЗАТЕЛЕН: без него «Обучение» здесь читается продолжением + «Обучение: сумма» чуть выше (разные поля — то принадлежит КДП, это + любому согласующему, см. README «Отдельный механизм от TrainingAmount»). + Каждую сумму может заполнить ЛЮБОЙ активный согласующий (не только + профильный, в отличие от отметок выше) — но как только сумма указана, + блокируется навсегда для всех, поэтому у незаблокированных + (writeOffEditableKeys.has(cat.key)) есть readOnly={false}, у остальных + — обычное поведение FormMode (просмотр — заблокировано и так). «За что + конкретно» — своего поля здесь нет: заполнил хоть одну сумму — + обязательным становится СТАНДАРТНЫЙ комментарий решения в DecisionPanel + («Ваше решение»), см. ClearanceView (commentRequired/commentPlaceholder). */} + {writeOffEditableKeys && ( + <> +
Суммы к списанию
+ {WRITE_OFF_CATEGORIES.map((cat) => { + const editable = writeOffEditableKeys.has(cat.key); + return ( + + set(cat.amountField, v)} + readOnly={editable ? false : undefined} + /> + + ); + })} + + )} {/* Есть только у листов, созданных автоматически по согласованному заявлению на увольнение (см. forms/Dismissal/createClearance.ts). */}