fix: prefill position, hide print photo, drop SLA column
Tests / frontend-test (push) Successful in 1m8s

This commit is contained in:
Тимур Городецкий
2026-08-13 10:18:30 +05:00
parent 6fed6b1540
commit fc2ef1789d
2 changed files with 4 additions and 10 deletions
@@ -90,12 +90,6 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
// Пустые колонки не показываем — столбец из одних прочерков только шумит. // Пустые колонки не показываем — столбец из одних прочерков только шумит.
const hasStatuses = rows.some((r) => r.status && r.status !== '—'); const hasStatuses = rows.some((r) => r.status && r.status !== '—');
const hasDates = rows.some((r) => !!r.date); const hasDates = rows.some((r) => !!r.date);
// slaHours на строке — уже ИТОГОВОЕ значение с применённым наследованием
// (шаг перекрывает тип заявки): для черновика его так отдаёт resolve
// (getPlannedMatrix), для поданной заявки — то, что записали в строку при
// отправке (см. writeRoute). Здесь его достаточно просто показать, повторно
// резолвить нечего.
const hasSla = rows.some((r) => r.slaHours !== undefined && r.slaHours !== null);
// Число колонок (для colSpan) — на случай будущих нужд не используется: комментарий // Число колонок (для colSpan) — на случай будущих нужд не используется: комментарий
// выводим внутри ячейки согласующего, чтобы не ломать rowSpan колонки «Шаг». // выводим внутри ячейки согласующего, чтобы не ломать rowSpan колонки «Шаг».
@@ -119,7 +113,6 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
<th>Должность</th> <th>Должность</th>
{hasStatuses && <th>Статус</th>} {hasStatuses && <th>Статус</th>}
{hasDates && <th>Дата</th>} {hasDates && <th>Дата</th>}
{hasSla && <th>SLA</th>}
{editable && <th />} {editable && <th />}
{editable && <th />} {editable && <th />}
</tr> </tr>
@@ -156,9 +149,6 @@ export const ApprovalMatrix: React.FC<IApprovalMatrixProps> = ({
</td> </td>
)} )}
{hasDates && <td data-label="Дата">{r.date}</td>} {hasDates && <td data-label="Дата">{r.date}</td>}
{hasSla && (
<td data-label="SLA">{r.slaHours || r.slaHours === 0 ? `${r.slaHours} ч` : '—'}</td>
)}
{/* Перемещение действует на ШАГ целиком (параллельные строки {/* Перемещение действует на ШАГ целиком (параллельные строки
переезжают вместе): одна пара стрелок на весь шаг. */} переезжают вместе): одна пара стрелок на весь шаг. */}
{editable && isBlockStart && ( {editable && isBlockStart && (
@@ -51,6 +51,10 @@ const PRINT_CSS =
'html,body{margin:0;background:#fff;height:auto!important;min-height:0!important}' + 'html,body{margin:0;background:#fff;height:auto!important;min-height:0!important}' +
'body{padding:24px;font-size:13px}' + 'body{padding:24px;font-size:13px}' +
'svg{display:none!important}' + 'svg{display:none!important}' +
// Фото сотрудника (аватар персоны PeoplePicker) в печать не идёт — на бумаге
// нужны только ФИО и e-mail. Прячем весь круг-аватар, чтобы не оставался
// пустой кружок. Текст персоны (имя/почта) остаётся.
'.ms-Persona-imageArea,.ms-Persona-image{display:none!important}' +
'.rp-print-root>*{border:0!important;box-shadow:none!important;padding:0!important}' + '.rp-print-root>*{border:0!important;box-shadow:none!important;padding:0!important}' +
'.rp-print-value{white-space:pre-wrap;color:#000;padding:1px 0 2px}'; '.rp-print-value{white-space:pre-wrap;color:#000;padding:1px 0 2px}';