Feature/vacation edo signing #23

Merged
gorbenko.pavel merged 27 commits from feature/vacation-edo-signing into main 2026-10-05 08:53:19 +00:00
2 changed files with 10 additions and 6 deletions
Showing only changes of commit 8cdee83496 - Show all commits
@@ -20,6 +20,11 @@
color: $gray-700;
}
// Блок таблицы на всю ширину сетки формы (без FormField — его подпись дублировала бы заголовок колонки).
.tableWrap {
grid-column: 1 / -1;
}
// Таблица организаций: те же цвета, что у .line — «подставлено автоматически».
.table {
width: 100%;
@@ -1,12 +1,10 @@
import * as React from 'react';
import styles from './OrganizationField.module.scss';
import { FormField } from '@tnsu/ui-kit';
import { parseOrganizationLine } from '../../dictionary/organizationLines';
interface IOrganizationTableProps {
/** `\n`-joined «Компания — должность — подразделение» на организацию (см. formatEmployeeOrganizationsWithDepartment). */
value: string;
label?: string;
/** Индекс строки, остающейся в печати (см. OrganizationField.printIndex); остальные — `rp-no-print`. */
printIndex?: number;
}
@@ -14,14 +12,15 @@ interface IOrganizationTableProps {
/**
* Организации сотрудника таблицей «Организация · Должность · Подразделение» —
* read-only, подтягивается из Employee/ByEmail. На каждую организацию своё
* подразделение (сотрудник может состоять в нескольких). Нет данных — ничего не рендерим.
* подразделение (сотрудник может состоять в нескольких). Без внешней подписи: её роль
* играет заголовок колонки «Организация». Нет данных — ничего не рендерим.
*/
export const OrganizationTable: React.FC<IOrganizationTableProps> = ({ value, label = 'Организация', printIndex }) => {
export const OrganizationTable: React.FC<IOrganizationTableProps> = ({ value, printIndex }) => {
const rows = value ? value.split('\n').map(parseOrganizationLine) : [];
if (rows.length === 0) return null;
return (
<FormField label={label} full>
<div className={styles.tableWrap}>
<table className={styles.table}>
<thead>
<tr>
@@ -40,6 +39,6 @@ export const OrganizationTable: React.FC<IOrganizationTableProps> = ({ value, la
))}
</tbody>
</table>
</FormField>
</div>
);
};