fix(DocumentReview): виртуализация таблицы ОСВ (#38, AURORA-1665) #41
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/38-osv-virtual-table"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что и зачем
Экран «Просмотр ОСВ» рисовал все строки таблицы сразу. ОСВ на ~29 тысяч строк — это ~29 тысяч HTML-строк в странице, браузер съедал память и вкладка падала.
Теперь таблица «виртуальная» (
virtualв antd 6): браузер рисует только те строки, что видны на экране (~15), а при прокрутке подставляет следующие. Данные по-прежнему загружаются целиком, поиск по контрагенту/ИНН и фильтр по субсчёту работают как раньше (на клиенте), серверной пагинации нет.Виртуальной таблице нужна высота числом, а не
calc(100vh - 340px). Высота считается чистой функциейosvBodyHeight(окно минус 340 px, не меньше 240) и пересчитывается при изменении размера окна. Функция покрыта тестами.Сохранено: «Итого по документу» закреплена внизу и выровнена, двухъярусная шапка, закреплённая колонка «Субсчёт», горизонтальная прокрутка, текст «нет строк». В спеку
document-review-uiдобавлено требование про виртуализацию (отдельным абзацем).Closes #38. Jira AURORA-1665.
make check
Браузерная проверка (Playwright, окно 1600x1000, реальные файлы контура)
Открытие документа, число HTML-строк в DOM и память JS (
usedJSHeapSize):«До» — тот же код без
virtual(случайно снят в начале проверки, вкладка не упала, но память — гигабайты; замеры по документам шли в одной сессии браузера, поэтому их память накопительная и показывает порядок величины). Скриншоты не в репозитории (реальные данные).Rulings I made
window.resize, без ResizeObserver — проще, поведение прежнее.osvBodyHeight.Находки
a3e53c8a3e53c8a3e53c8scroll={{ y, x }}и абзац спеки — разрешить при merge второго PR🤖 Generated with Claude Code