- perf/analysis: разбор trace (timeline_breakdown), CPU-профилей с source maps (cpuprofile_top), heap snapshots (heapdiff), циклов памяти, сравнения масштабов, ручной EXPLAIN вложенных запросов (explain_manual), API против X-DB-Time-Ms (api_split), сводка горячих точек; тесты ядра в perf/tests/test_analysis.py - perf/e2e/scenarios/hotspots.spec.ts: CPU-профиль, рендеры React, мутации DOM после фильтра, рост CSS-правил по циклам (вне run-all) - prod-сборка с source maps: PERF_SOURCEMAP=1, perf/stand.sh web-sourcemap (:8082) - perf/report-data/20261026-s1, 20261026-s2 (summary, sql, analysis, explain-manual), t5-types (иллюстрация CPU 6x) - design.md: решения T10b без обсуждения Refs #202 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.8 KiB
7.8 KiB
Перечень модалок
Источник: perf/e2e/modals.json (поиск по web/src: common/Modal, emotion-модалки ModalBackdrop, MUI Dialog/Modal/Popover).
priority 1 - листы форм, задача, проект, проекты, задачи; priority 2 - админка и справочник ВСП.
| id | страница | source | priority | роль | открытие | статус | n | медиана, мс | skip_reason |
|---|---|---|---|---|---|---|---|---|---|
sheet_select_vsp |
sheet | web/src/components/RealtimeTable/Modals/SelectVspModal.jsx:51 |
1 | rf | button[aria-label="Добавить строку"] |
measured | 5 | 58 | |
sheet_select_vsp@big |
sheet | web/src/components/RealtimeTable/Modals/SelectVspModal.jsx:51 |
1 | rf | button[aria-label="Добавить строку"] |
measured | 5 | 57 | |
sheet_select_expense |
sheet | web/src/components/RealtimeTable/Modals/SelectExpenseItemModal.jsx:51 |
1 | rf | button[aria-label="Добавить строку"] (+1 шаг.) |
measured | 5 | 66 | |
sheet_select_expense@big |
sheet | web/src/components/RealtimeTable/Modals/SelectExpenseItemModal.jsx:51 |
1 | rf | button[aria-label="Добавить строку"] (+1 шаг.) |
measured | 5 | 70 | |
sheet_create_program |
sheet | web/src/components/RealtimeTable/Modals/CreateProgramProjectModal.jsx:38 |
1 | rf | button[aria-label="Добавить программу"] |
measured | 5 | 65 | |
sheet_create_program@big |
sheet | web/src/components/RealtimeTable/Modals/CreateProgramProjectModal.jsx:38 |
1 | rf | button[aria-label="Добавить программу"] |
measured | 5 | 62 | |
sheet_create_project |
sheet | web/src/components/RealtimeTable/Modals/CreateProgramProjectModal.jsx:38 |
1 | rf | button[aria-label="Добавить проект"] (+1 шаг.) |
measured | 5 | 66 | |
sheet_create_project@big |
sheet | web/src/components/RealtimeTable/Modals/CreateProgramProjectModal.jsx:38 |
1 | rf | button[aria-label="Добавить проект"] (+1 шаг.) |
measured | 5 | 63 | |
sheet_columns_tree |
sheet | web/src/components/common/CollapsibleTree.jsx:203 |
1 | rf | [data-pin-panel] input[readonly] |
measured | 5 | 37 | |
sheet_columns_tree@big |
sheet | web/src/components/common/CollapsibleTree.jsx:203 |
1 | rf | [data-pin-panel] input[readonly] |
measured | 5 | 34 | |
task_stages |
task | web/src/components/Stages/SettingModal.jsx:102 |
1 | rf | role=button[name="Этапы"] |
measured | 5 | 24 | |
task_stage_add |
task | web/src/components/Stages/AddStagesModal.jsx:156 |
1 | admin | role=button[name="Добавить этап"] (+1 шаг.) |
measured | 5 | 24 | |
task_stage_edit |
task | web/src/components/Stages/AddStagesModal.jsx:156 |
1 | admin | role=menuitem[name="Редактировать"] (+2 шаг.) |
measured | 5 | 24 | |
project_stages |
project | web/src/components/Stages/SettingModal.jsx:102 |
1 | rf | role=button[name="Этапы"] >> nth=0 |
measured | 5 | 25 | |
project_add_year |
project | web/src/pages/TaskPage/TaskPage.jsx:217 |
1 | rf | role=button[name="Добавить год"] |
measured | 5 | 24 | |
project_stage_delete |
project | web/src/components/Stages/DeleteStageModal.jsx:38 |
1 | admin | role=menuitem[name="Удалить"] (+2 шаг.) |
measured | 5 | 25 | |
projects_create |
projects | web/src/pages/ProjectsPage/ModalCreateProject.jsx:247 |
1 | rf | role=button[name="Создать проект"] |
measured | 5 | 40 | |
projects_edit |
projects | web/src/pages/ProjectPages/components/EditModal/EditModal.jsx:170 |
1 | rf | role=button[name="Редактировать"] >> nth=0 |
measured | 5 | 43 | |
projects_delete |
projects | web/src/pages/ProjectPages/NavigationProjectPage.jsx:510 |
1 | rf | role=button[name="Удалить проект"] >> nth=0 |
measured | 5 | 29 | |
tasks_create |
tasks | web/src/pages/TasksPage/TasksPage.jsx:374 |
1 | admin | role=button[name="Создать задачу"] |
measured | 5 | 62 | |
tasks_confirm_mark |
tasks | web/src/pages/TasksPage/TasksTable.jsx:371 |
1 | admin | text=Отправить на удаление (+1 шаг.) |
measured | 5 | 34 | |
forms_create |
forms | web/src/pages/FormsPage.jsx:133 |
1 | admin | skip | 0 | страница FormsPage не подключена в app/Routes.jsx - открыть из UI нельзя | ||
taskcard_confirm |
forms | web/src/components/common/TaskCardComponent.jsx:265 |
1 | admin | skip | 0 | TaskCardComponent используется только в FormsPage (не в маршрутах) | ||
infoheader_rename |
forms | web/src/pages/TableTempPage/InfoForHeader.jsx:44 |
1 | admin | skip | 0 | TableTempPage не в маршрутах, ModalRename не импортирован - мёртвый код | ||
admin_users_add |
admin_users | web/src/pages/AdminPanel/UsersPage/ModalAddUsers.jsx:71 |
2 | admin | role=button[name="Добавить"] |
measured | 3 | 49 | |
admin_users_edit |
admin_users | web/src/pages/AdminPanel/UsersPage/UserTable/EditUserModal.jsx:311 |
2 | admin | role=menuitem[name="Редактировать"] (+1 шаг.) |
measured | 3 | 28 | |
admin_users_delete |
admin_users | web/src/pages/AdminPanel/UsersPage/UserTable/DeleteUserModal.jsx:48 |
2 | admin | role=menuitem[name="Удалить"] (+1 шаг.) |
measured | 3 | 30 | |
admin_users_ssp |
admin_users | web/src/pages/AdminPanel/UsersPage/ModalEditUserSsp.jsx:93 |
2 | admin | tbody button:has-text("Выбрать") >> nth=0 |
measured | 3 | 48 | |
admin_ssps_add |
admin_ssps | web/src/pages/AdminPanel/SppsPage/ModalAddSsp.jsx:51 |
2 | admin | role=button[name="Добавить"] |
measured | 3 | 39 | |
admin_ssps_edit |
admin_ssps | web/src/pages/AdminPanel/SppsPage/ModalEditSsp.jsx:41 |
2 | admin | tbody tr >> nth=0 >> button >> nth=-1 |
measured | 3 | 28 | |
admin_ssps_users |
admin_ssps | web/src/pages/AdminPanel/SppsPage/ModalChangeUsersInSsp.jsx:121 |
2 | admin | tbody tr >> nth=0 >> button >> nth=0 |
measured | 3 | 28 | |
admin_ssps_archive |
admin_ssps | web/src/pages/AdminPanel/SppsPage/ModalConfirmArchiveSsp.jsx:27 |
2 | admin | tbody tr >> nth=0 >> button:has-text("Активен") |
measured | 3 | 24 | |
admin_phase_add |
admin_default_stage | web/src/pages/AdminPanel/PhaseTemplatesPage/components/PhaseTemplateDialog.jsx:120 |
2 | admin | role=button[name="Добавить этап"] |
measured | 3 | 71 | |
admin_phase_edit |
admin_default_stage | web/src/pages/AdminPanel/PhaseTemplatesPage/components/PhaseTemplateDialog.jsx:120 |
2 | admin | role=button[name^="Редактировать этап"] >> nth=0 |
measured | 3 | 67 | |
admin_phase_delete |
admin_default_stage | web/src/pages/AdminPanel/PhaseTemplatesPage/components/DeletePhaseTemplateDialog.jsx:8 |
2 | admin | role=button[name^="Удалить этап"] >> nth=0 |
measured | 3 | 51 | |
admin_audit_json |
admin_audit_log | web/src/pages/AdminPanel/AuditLogsPage/components/JsonViewModal.jsx:95 |
2 | admin | text=Посмотреть >> nth=0 |
measured | 3 | 40 | |
dict_vsp_add |
dict_vsp | web/src/pages/DictVspPage/components/Modals/ModalEditAddVsp.jsx:239 |
2 | admin | role=button[name="+ Добавить объект"] |
measured | 3 | 507 | |
dict_vsp_edit |
dict_vsp | web/src/pages/DictVspPage/components/Modals/ModalEditAddVsp.jsx:239 |
2 | admin | tbody tr >> nth=0 >> button >> nth=-1 |
measured | 3 | 609 | |
dict_vsp_export |
dict_vsp | web/src/pages/DictVspPage/components/Modals/ModalExport.jsx:71 |
2 | admin | role=button[name="Экспортировать"] |
measured | 3 | 496 |
Всего: 39, без skip_reason: 36, skip_reason: 3.