From 7dab6f2e3362373f32eecb9beea74c2956ec1992 Mon Sep 17 00:00:00 2001 From: tianqijiuyun-latiao <69459608+tianqijiuyun-latiao@users.noreply.github.com> Date: Wed, 24 Jun 2026 10:47:37 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(query-editor):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=BB=93=E6=9E=9C=E9=9B=86=E9=98=BB=E5=A1=9E=E4=B8=8E?= =?UTF-8?q?=E6=9C=AA=E7=9F=A5=E6=80=BB=E6=95=B0=E5=88=86=E9=A1=B5=E8=AF=AF?= =?UTF-8?q?=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为查询结果定位元数据探测增加软超时降级,避免租户元数据卡死阻塞主查询结果渲染 - 将未知总数分页切换为顺序翻页模式,并修正文案仅在真实统计时显示正在统计中 - 补充查询结果与分页回归测试,覆盖元数据超时和 legacy 未知总数分页场景 --- .../src/components/DataGrid.layout.test.tsx | 39 +++++++++++ .../src/components/DataGridPaginationBar.tsx | 64 +++++++++++++------ frontend/src/components/DataViewer.tsx | 32 ++++++++-- .../QueryEditor.external-sql-save.test.tsx | 4 +- .../QueryEditor.results-and-drop.test.tsx | 43 +++++++++++++ .../queryEditor/QueryEditorHelpers.ts | 34 +++++++++- frontend/src/utils/dataGridPagination.test.ts | 7 ++ frontend/src/utils/dataGridPagination.ts | 17 ++--- 8 files changed, 202 insertions(+), 38 deletions(-) diff --git a/frontend/src/components/DataGrid.layout.test.tsx b/frontend/src/components/DataGrid.layout.test.tsx index d48fb76..03206fc 100644 --- a/frontend/src/components/DataGrid.layout.test.tsx +++ b/frontend/src/components/DataGrid.layout.test.tsx @@ -1902,6 +1902,45 @@ describe('DataGrid layout', () => { expect(markup).not.toContain('data-grid-pagination-jump="true"'); }); + it('keeps legacy unknown-total pagination in sequential mode instead of numbered pages', () => { + const previousUiVersion = mockStoreState.uiVersion; + mockStoreState.uiVersion = 'legacy'; + + try { + const markup = renderDataGridWithI18n( + {}} + />, + ); + + expect(markup).toContain('第 3 页'); + expect(markup).toContain('data-grid-pagination-sequential="true"'); + expect(markup).not.toContain('class="ant-pagination'); + expect(markup).not.toContain('data-grid-pagination-jump="true"'); + } finally { + mockStoreState.uiVersion = previousUiVersion; + } + }); + it('renders the v2 DataGrid toolbar using the redesigned topbar hooks', () => { const markup = renderDataGridWithI18n( = ({ translate = defaultTranslate, }) => { const [jumpPage, setJumpPage] = React.useState(pagination?.current ?? null); + const showSequentialPagination = !showKnownPageCount; React.useEffect(() => { setJumpPage(pagination?.current ?? null); @@ -93,6 +94,31 @@ const DataGridPaginationBar: React.FC = ({ ) : null; + const sequentialPaginationControl = ( +
+
+ ); return (
= ({ {translate('data_grid.pagination.result_set')} {paginationSummaryText}
- { - if (type === 'prev') { - return ; - } - if (type === 'next') { - return ; - } - return originalElement; - }} - /> + {showSequentialPagination ? sequentialPaginationControl : ( + { + if (type === 'prev') { + return ; + } + if (type === 'next') { + return ; + } + return originalElement; + }} + /> + )} {jumpPageControl}