feat: changed get time logic to approvers

This commit is contained in:
Тимур Городецкий
2026-08-13 10:01:08 +05:00
parent 2e6e138e8d
commit 8578653c16
55 changed files with 2249 additions and 46 deletions
@@ -18,6 +18,15 @@ export interface IApprovalMatrixProps {
emptyText?: string;
/** Плейсхолдер пикера добавления (только если editor.editable). */
pickerPlaceholder?: string;
/**
* Режим ожидания: маршрут ещё нельзя построить (не выбрана зависимость,
* напр. проект). Показываем только заголовок и информационную заглушку —
* без обращения к API, таблицы и пикера. Состояние loading/error/rows
* редактора при этом игнорируется.
*/
waiting?: boolean;
/** Текст заглушки в режиме waiting. */
waitingText?: string;
}
/** Таблица маршрута (согласование или исполнение) + (если editable) правка состава. */
@@ -28,6 +37,8 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
roleLabel = 'Согласующий',
emptyText = 'Согласующие не заданы.',
pickerPlaceholder = 'Добавить согласующего: начните вводить ФИО…',
waiting = false,
waitingText = '',
}) => {
const { rows, loading, error, editable, blocks } = editor;
@@ -86,12 +97,13 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
return (
<div className={styles.matrixWrap}>
<div className={styles.matrixTitle}>{title}</div>
{loading && <div className={styles.matrixNote}>Загрузка маршрута…</div>}
{!loading && error && <div className={styles.matrixNote}>Маршрут недоступен: {error}</div>}
{!loading && !error && rows.length === 0 && (
{waiting && <div className={styles.matrixNote}>{waitingText}</div>}
{!waiting && loading && <div className={styles.matrixNote}>Загрузка маршрута…</div>}
{!waiting && !loading && error && <div className={styles.matrixNote}>Маршрут недоступен: {error}</div>}
{!waiting && !loading && !error && rows.length === 0 && (
<div className={styles.matrixNote}>{emptyText}</div>
)}
{!loading && !error && rows.length > 0 && (
{!waiting && !loading && !error && rows.length > 0 && (
<div className={styles.matrixScroll}>
<table className={styles.matrix}>
<thead>
@@ -193,7 +205,7 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
</table>
</div>
)}
{editable && !loading && (
{editable && !waiting && !loading && (
<div className={styles.matrixPicker}>
<UserPicker search={search} onPick={addApprover} placeholder={pickerPlaceholder} />
</div>