️ perf(ui): 优化数据页滚动与编辑响应

- 优化 DataGrid 虚拟滚动横向同步与外部滚动条宽度计算
- 降低 v2 数据表内容容器的重绘与持久化写入开销
- 拆分 Tab 内容渲染并收敛 QueryEditor 对活跃标签的订阅
- 修复虚拟编辑态与单元格右键菜单的共享渲染路径
- 调整 v2 数据表编辑态样式并补齐性能复现 harness 对照能力
- 补充 DataGrid 布局与滚动相关回归测试
This commit is contained in:
Syngnat
2026-05-27 19:56:14 +08:00
parent 17695c361d
commit ccd12742d3
10 changed files with 721 additions and 125 deletions

View File

@@ -3049,6 +3049,43 @@ body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody .ant-table-row > .a
padding: 0 calc(10px * var(--gn-ui-scale, 1)) !important;
font-family: var(--gn-font-mono) !important;
font-size: var(--gn-data-table-font-size, var(--gn-font-size-mono, 12px)) !important;
line-height: calc(28px * var(--gn-ui-scale, 1)) !important;
vertical-align: middle !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody > tr > td .editable-cell-value-wrap,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody .ant-table-row > .ant-table-cell .editable-cell-value-wrap {
min-height: calc(28px * var(--gn-ui-scale, 1));
line-height: calc(28px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-row,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control-input,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control-input-content {
display: flex !important;
align-items: center !important;
height: 24px !important;
min-height: 24px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item {
margin: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-input,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-picker {
display: flex !important;
align-items: center !important;
width: 100% !important;
height: 24px !important;
min-height: 24px !important;
line-height: 24px !important;
margin: 0 !important;
box-sizing: border-box !important;
position: static !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar {