feat: памятка HR и подсветка ошибок полей в заявках на отпуск
Tests / frontend-test (push) Successful in 2m5s
Tests / frontend-test (push) Successful in 2m5s
LeavePrintNotice заменён общим LeaveNotice с заголовком и пунктами из model.ts каждой формы: в отпуске — примечание HR (ст. 92 ТК РК, срок подачи, подписание в отделе кадров), в отпуске без содержания — прежняя памятка про печать. Проверки отпуска вынесены в validation.ts и показываются под полями через FieldIssuesProvider, как в приёме и подборе. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
.list {
|
||||
margin: 6px 0 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.item + .item {
|
||||
margin-top: 4px;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import * as React from 'react';
|
||||
import { Alert } from '@tnsu/ui-kit';
|
||||
import styles from './LeaveNotice.module.scss';
|
||||
|
||||
interface Props {
|
||||
/** Заголовок плашки, например «Примечание» или «Памятка». */
|
||||
title: string;
|
||||
/** Пункты текста. Один пункт — идёт сразу за заголовком, несколько — списком. */
|
||||
items: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Плашка с правилами для заявлений на отпуск (трудовой и без содержания).
|
||||
* Тексты у форм разные, поэтому приходят из model.ts каждой формы.
|
||||
* Вариант warn, а не info: нейтральная плашка терялась на фоне формы.
|
||||
* На печать не выводится — это подсказка для сотрудника, а не часть заявления.
|
||||
*/
|
||||
export const LeaveNotice: React.FC<Props> = ({ title, items }) => {
|
||||
if (items.length === 0) return null;
|
||||
|
||||
return (
|
||||
<div className="rp-no-print">
|
||||
<Alert variant="warn">
|
||||
<strong>{title}.</strong>
|
||||
{items.length === 1 ? (
|
||||
<> {items[0]}</>
|
||||
) : (
|
||||
<ul className={styles.list}>
|
||||
{items.map((item) => (
|
||||
<li key={item} className={styles.item}>
|
||||
{item}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
</Alert>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
import * as React from 'react';
|
||||
import { Alert } from '@tnsu/ui-kit';
|
||||
|
||||
/** Пользовательские тексты памятки — в одном месте (задел под локализацию). */
|
||||
const NOTICE_TITLE = 'Памятка';
|
||||
const NOTICE_TEXT =
|
||||
'После согласования заявления его необходимо распечатать с портала (кнопка «Печать» на странице заявки), ' +
|
||||
'собственноручно подписать и передать специалисту отдела кадров.';
|
||||
|
||||
/**
|
||||
* Памятка для заявлений на отпуск (трудовой и без содержания): что сделать после
|
||||
* согласования. Подписанный бумажный экземпляр нужен отделу кадров, поэтому
|
||||
* напоминаем и при подаче, и при просмотре. На печать не выводится.
|
||||
* Вариант warn, а не info: нейтральная плашка терялась на фоне формы.
|
||||
*/
|
||||
export const LeavePrintNotice: React.FC = () => (
|
||||
<div className="rp-no-print">
|
||||
<Alert variant="warn">
|
||||
<strong>{NOTICE_TITLE}.</strong> {NOTICE_TEXT}
|
||||
</Alert>
|
||||
</div>
|
||||
);
|
||||
@@ -59,6 +59,6 @@ export { issueLabels } from './FieldIssues/fieldIssues';
|
||||
export { getDraftDeleteHandler } from './SubmitActions/getDraftDeleteHandler';
|
||||
export { InitiatorLine } from './InitiatorLine/InitiatorLine';
|
||||
export type { IInitiatorLineProps } from './InitiatorLine/InitiatorLine';
|
||||
export { LeavePrintNotice } from './LeavePrintNotice/LeavePrintNotice';
|
||||
export { LeaveNotice } from './LeaveNotice/LeaveNotice';
|
||||
export { useRequestSubmit } from './useRequestSubmit';
|
||||
export type { IRequestSubmit, SubmitKind } from './useRequestSubmit';
|
||||
|
||||
Reference in New Issue
Block a user