Sla (#6)
Tests / frontend-test (push) Successful in 1m15s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/6
This commit was merged in pull request #6.
This commit is contained in:
2026-08-13 04:45:02 +00:00
parent 2e6e138e8d
commit 03182dbba4
18 changed files with 133 additions and 175 deletions
@@ -79,6 +79,12 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
// Пустые колонки не показываем — столбец из одних прочерков только шумит.
const hasStatuses = rows.some((r) => r.status && r.status !== '—');
const hasDates = rows.some((r) => !!r.date);
// slaHours на строке — уже ИТОГОВОЕ значение с применённым наследованием
// (шаг перекрывает тип заявки): для черновика его так отдаёт resolve
// (getPlannedMatrix), для поданной заявки — то, что записали в строку при
// отправке (см. writeRoute). Здесь его достаточно просто показать, повторно
// резолвить нечего.
const hasSla = rows.some((r) => r.slaHours !== undefined && r.slaHours !== null);
// Число колонок (для colSpan) — на случай будущих нужд не используется: комментарий
// выводим внутри ячейки согласующего, чтобы не ломать rowSpan колонки «Шаг».
@@ -101,6 +107,7 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
<th>Должность</th>
{hasStatuses && <th>Статус</th>}
{hasDates && <th>Дата</th>}
{hasSla && <th>SLA</th>}
{editable && <th />}
{editable && <th />}
</tr>
@@ -137,6 +144,9 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
</td>
)}
{hasDates && <td data-label="Дата">{r.date}</td>}
{hasSla && (
<td data-label="SLA">{r.slaHours || r.slaHours === 0 ? `${r.slaHours} ч` : '—'}</td>
)}
{/* Перемещение действует на ШАГ целиком (параллельные строки
переезжают вместе): одна пара стрелок на весь шаг. */}
{editable && isBlockStart && (