From da5c3807e8121bd49343b49aeea372862ad1c27c Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Tue, 1 Sep 2026 17:19:30 +0500 Subject: [PATCH] =?UTF-8?q?fix(print):=20=D1=83=D0=B1=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BE=D0=BB=D0=BE=D1=81=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=BA=D1=80=D1=83=D1=82=D0=BA=D0=B8=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=B8=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На печати заявки под строками сметы и объёмов работ выходила серая полоса прокрутки со стрелками (видно в PDF): контейнеры с overflow-x: auto печатаются вместе со своим скроллбаром, а уехавшее вбок на бумаге просто теряется — прокрутить лист нельзя. В @media print отпускаем ширину: overflow: visible и min-width: 0, тогда таблица укладывается в лист целиком. Помимо новых блоков «Заявки на услуги» это же исправлено у общей ItemsTable (печать СЗ на перемещение ТМЦ) и у матрицы согласования — там ровно тот же контейнер. Блоки @media print стоят В КОНЦЕ файлов намеренно: медиазапрос не повышает специфичность, и базовое `.row { min-width: 640px }`, объявленное ниже, перебивало бы правило печати (поймано на скомпилированном CSS). Co-Authored-By: Claude Opus 5 --- .../sections/AnnexesSection.module.scss | 8 ++++++++ .../sections/CostGroupsEditor.module.scss | 18 ++++++++++++++++++ .../shared/approval/ui/approval.module.scss | 14 ++++++++++++++ .../ui/ItemsTable/ItemsTable.module.scss | 9 +++++++++ 4 files changed, 49 insertions(+) diff --git a/src/webparts/requestPortal/forms/ServiceRequest/sections/AnnexesSection.module.scss b/src/webparts/requestPortal/forms/ServiceRequest/sections/AnnexesSection.module.scss index 843525e..a415fef 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/sections/AnnexesSection.module.scss +++ b/src/webparts/requestPortal/forms/ServiceRequest/sections/AnnexesSection.module.scss @@ -10,6 +10,7 @@ overflow-x: auto; } + .table { width: 100%; border-collapse: collapse; @@ -164,3 +165,10 @@ gap: $sp-2; margin-top: $sp-3; } + +// См. CostGroupsEditor: на бумаге прокрутки нет, уехавшее вбок теряется. +@media print { + .tableWrap { + overflow: visible; + } +} diff --git a/src/webparts/requestPortal/forms/ServiceRequest/sections/CostGroupsEditor.module.scss b/src/webparts/requestPortal/forms/ServiceRequest/sections/CostGroupsEditor.module.scss index 772b27f..d3f1277 100644 --- a/src/webparts/requestPortal/forms/ServiceRequest/sections/CostGroupsEditor.module.scss +++ b/src/webparts/requestPortal/forms/ServiceRequest/sections/CostGroupsEditor.module.scss @@ -155,3 +155,21 @@ font-weight: 700; color: $navy-700; } + +// ---- Печать ---- +// На бумаге прокрутки нет: «уехавшее вбок» просто потерялось бы, а сам +// контейнер печатается вместе с полосой прокрутки (видно на печати заявки). +// Отпускаем ширину — колонки строки суммарно уже A4, так что она укладывается +// в лист целиком. +// +// Блок ДОЛЖЕН стоять в конце файла: @media print не повышает специфичность, и +// базовое `.row { min-width }` выше перебило бы это правило, стой оно раньше. +@media print { + .rowsWrap { + overflow: visible; + } + + .row { + min-width: 0; + } +} diff --git a/src/webparts/requestPortal/shared/approval/ui/approval.module.scss b/src/webparts/requestPortal/shared/approval/ui/approval.module.scss index 58f4404..507a2dc 100644 --- a/src/webparts/requestPortal/shared/approval/ui/approval.module.scss +++ b/src/webparts/requestPortal/shared/approval/ui/approval.module.scss @@ -128,6 +128,7 @@ -webkit-overflow-scrolling: touch; } + .matrix { width: 100%; min-width: 480px; // колонки не сжимаются; при нехватке места .matrixScroll прокручивает @@ -355,3 +356,16 @@ padding-top: $sp-2 !important; } } + +// ---- Печать ---- +// Прокрутка на бумаге недоступна: неуместившееся вбок просто не попало бы на +// лист. Обе оси отпускаем — overflow-y здесь стоит только ради анимации +// перестановки строк (см. .matrixScroll), а в печати её нет. +// +// В конце файла намеренно: @media print не повышает специфичность, и любое +// базовое правило ниже перебило бы это (см. CostGroupsEditor.module.scss). +@media print { + .matrixScroll { + overflow: visible; + } +} diff --git a/src/webparts/requestPortal/shared/ui/ItemsTable/ItemsTable.module.scss b/src/webparts/requestPortal/shared/ui/ItemsTable/ItemsTable.module.scss index 0796da8..ba53a1b 100644 --- a/src/webparts/requestPortal/shared/ui/ItemsTable/ItemsTable.module.scss +++ b/src/webparts/requestPortal/shared/ui/ItemsTable/ItemsTable.module.scss @@ -5,6 +5,7 @@ overflow-x: auto; } + .table { width: 100%; border-collapse: collapse; @@ -164,3 +165,11 @@ display: flex; gap: $sp-2; } + +// На печати прокрутки не существует: то, что не поместилось по ширине, просто +// пропало бы с листа, а контейнер вышел бы с полосой прокрутки. +@media print { + .tableWrap { + overflow: visible; + } +}