fix: таблица организаций без дублирующей подписи «Организация»
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,11 @@
|
|||||||
color: $gray-700;
|
color: $gray-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Блок таблицы на всю ширину сетки формы (без FormField — его подпись дублировала бы заголовок колонки).
|
||||||
|
.tableWrap {
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
}
|
||||||
|
|
||||||
// Таблица организаций: те же цвета, что у .line — «подставлено автоматически».
|
// Таблица организаций: те же цвета, что у .line — «подставлено автоматически».
|
||||||
.table {
|
.table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import styles from './OrganizationField.module.scss';
|
import styles from './OrganizationField.module.scss';
|
||||||
import { FormField } from '@tnsu/ui-kit';
|
|
||||||
import { parseOrganizationLine } from '../../dictionary/organizationLines';
|
import { parseOrganizationLine } from '../../dictionary/organizationLines';
|
||||||
|
|
||||||
interface IOrganizationTableProps {
|
interface IOrganizationTableProps {
|
||||||
/** `\n`-joined «Компания — должность — подразделение» на организацию (см. formatEmployeeOrganizationsWithDepartment). */
|
/** `\n`-joined «Компания — должность — подразделение» на организацию (см. formatEmployeeOrganizationsWithDepartment). */
|
||||||
value: string;
|
value: string;
|
||||||
label?: string;
|
|
||||||
/** Индекс строки, остающейся в печати (см. OrganizationField.printIndex); остальные — `rp-no-print`. */
|
/** Индекс строки, остающейся в печати (см. OrganizationField.printIndex); остальные — `rp-no-print`. */
|
||||||
printIndex?: number;
|
printIndex?: number;
|
||||||
}
|
}
|
||||||
@@ -14,14 +12,15 @@ interface IOrganizationTableProps {
|
|||||||
/**
|
/**
|
||||||
* Организации сотрудника таблицей «Организация · Должность · Подразделение» —
|
* Организации сотрудника таблицей «Организация · Должность · Подразделение» —
|
||||||
* read-only, подтягивается из Employee/ByEmail. На каждую организацию своё
|
* 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) : [];
|
const rows = value ? value.split('\n').map(parseOrganizationLine) : [];
|
||||||
if (rows.length === 0) return null;
|
if (rows.length === 0) return null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<FormField label={label} full>
|
<div className={styles.tableWrap}>
|
||||||
<table className={styles.table}>
|
<table className={styles.table}>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -40,6 +39,6 @@ export const OrganizationTable: React.FC<IOrganizationTableProps> = ({ value, la
|
|||||||
))}
|
))}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</FormField>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user