diff --git a/src/webparts/requestPortal/forms/ContractChange/README.md b/src/webparts/requestPortal/forms/ContractChange/README.md index 0fb02fd..6bd46da 100644 --- a/src/webparts/requestPortal/forms/ContractChange/README.md +++ b/src/webparts/requestPortal/forms/ContractChange/README.md @@ -58,7 +58,13 @@ RequestTypeId» в `docs/forms.md`). Тип и маршрут в админке | Вид | Секция | Поля (все необязательные, без ограничений) | | --- | --- | --- | | Повышение должностного оклада | `SalaryIncrease` | текущий оклад, новый оклад (`MoneyInput`, Number), дата изменения, причина (испытательный срок / расширение функционала / иное), обоснование — при «иное» это и есть текст причины | -| Остальные 9 | — | ещё не разобраны с кадрами | +| Установление надбавки / доплаты | `Allowance` | основание (а–д: надбавка или доплата видно из пункта), дата начала, дата окончания или «бессрочно» (флажок прячет и очищает дату), размер + переключатель «% / ₸» (`UnitSwitch`, по умолчанию %), обоснование — в т.ч. объём доп. работы при совмещении и текст «иное». Письменное согласие работника на совмещение оформляет кадровик после согласования — не в форме. Вложение «Результаты аттестации» (обязательно при основании «г») — следующим шагом | +| Остальные 8 | — | ещё не разобраны с кадрами | + +**Вложения по колонке ТЗ «Что приложить»** (решение 2026-10-28): фиксированные +подписанные слоты по виду (подпись — что за документ); обязательны там, где ТЗ +прямо требует документ (вид 2 «г» — аттестация, вид 3 — ДИ, вид 8 — новая ДИ; +вид 9 — текст ИЛИ файл), «можно приложить» — необязательно (вид 7). ## Открытые вопросы (проверить на тесте) - Выдаёт ли бэкенд (вебхуки) права на элемент по People-колонке `Employee`? Если да — diff --git a/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.module.scss b/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.module.scss new file mode 100644 index 0000000..306c74d --- /dev/null +++ b/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.module.scss @@ -0,0 +1,13 @@ +@import '../../../../../../styles/design-tokens'; + +// Сумма + переключатель «% / ₸» в одну строку: поле тянется, переключатель — по содержимому. +.amount { + display: flex; + align-items: stretch; + gap: $sp-2; +} + +.amountInput { + flex: 1; + min-width: 0; +} diff --git a/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.tsx b/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.tsx new file mode 100644 index 0000000..155d547 --- /dev/null +++ b/src/webparts/requestPortal/forms/ContractChange/byType/Allowance/AllowanceSection.tsx @@ -0,0 +1,87 @@ +import * as React from 'react'; +import { CollapseSection, FormField, MoneyInput, TextInput, TextArea, Select, Checkbox } from '../../../../shared/ui'; +import { CHANGE_TYPE_LABELS } from '../../changeTypes'; +import { ISectionProps } from '../../model'; +import { ALLOWANCE_REASONS } from './options'; +import { UnitSwitch } from './UnitSwitch'; +import { sanitizePercentInput, amountForUnit } from './amount'; +import styles from './AllowanceSection.module.scss'; + +/** + * Поля вида «Установление надбавки / доплаты». Состав согласован с Тимуром по ТЗ + * кадров: основание (а–д), срок с/по или бессрочно, размер в % или ₸, обоснование + * (в т.ч. объём доп. работы при совмещении). Все необязательные. + * + * Поля — прямо в CollapseSection, без FormGrid (тело секции само сетка). + */ +export const AllowanceSection: React.FC = ({ data, set }) => ( + + +