From 33caa1201fc4855f8bbbd9039025472d0310f494 Mon Sep 17 00:00:00 2001 From: chenhao Date: Mon, 22 Jun 2026 17:45:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=20ListTable=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=BB=9A=E5=8A=A8=E9=80=BB=E8=BE=91=E5=92=8C?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 `ListTable` 组件中合并默认滚动配置 - 更新 `TenantMeetingPointsSettings`、`MeetingPointsManagement` 和 `logs/index` 页面的滚动设置 - 优化 `ListTable` 和相关页面的 CSS 样式 - 更新 `fetchLogs` 请求参数处理逻辑 --- .../components/shared/ListTable/ListTable.css | 4 ++++ .../components/shared/ListTable/ListTable.tsx | 13 ++++++++++--- frontend/src/index.css | 4 ++++ .../pages/business/MeetingPointsManagement.tsx | 8 ++++---- .../business/TenantMeetingPointsSettings.tsx | 4 ++-- frontend/src/pages/system/logs/index.tsx | 18 ++++++++++++------ 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/shared/ListTable/ListTable.css b/frontend/src/components/shared/ListTable/ListTable.css index cbde08f..02e27ff 100644 --- a/frontend/src/components/shared/ListTable/ListTable.css +++ b/frontend/src/components/shared/ListTable/ListTable.css @@ -69,6 +69,10 @@ min-height: auto; } +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-header { + flex-shrink: 0; +} + .list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-body { flex: 1 1 auto; min-height: 0; diff --git a/frontend/src/components/shared/ListTable/ListTable.tsx b/frontend/src/components/shared/ListTable/ListTable.tsx index 942c9b1..1a765cf 100644 --- a/frontend/src/components/shared/ListTable/ListTable.tsx +++ b/frontend/src/components/shared/ListTable/ListTable.tsx @@ -45,7 +45,14 @@ function ListTable>({ className = "", onChange, }: ListTableProps) { - const hasVerticalScroll = scroll?.y !== undefined; + const mergedScroll = React.useMemo(() => { + return { + x: 1200, + ...scroll, + }; + }, [scroll]); + + const hasVerticalScroll = mergedScroll.y !== undefined; const rowSelection: TableProps["rowSelection"] = onSelectionChange ? { selectedRowKeys, @@ -104,7 +111,7 @@ function ListTable>({ const wrapperStyle = hasVerticalScroll ? ({ - ["--list-table-scroll-y" as string]: typeof scroll.y === "number" ? `${scroll.y}px` : scroll.y, + ["--list-table-scroll-y" as string]: typeof mergedScroll.y === "number" ? `${mergedScroll.y}px` : mergedScroll.y, } as React.CSSProperties) : undefined; @@ -118,7 +125,7 @@ function ListTable>({ dataSource={dataSource} rowKey={rowKey} pagination={mergedPagination} - scroll={scroll} + scroll={mergedScroll} loading={loading} onChange={onChange} onRow={(record) => ({ diff --git a/frontend/src/index.css b/frontend/src/index.css index 72bced6..aa8b316 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -857,6 +857,10 @@ body::after { min-height: 0; } +.ant-table-wrapper .ant-table-header { + flex-shrink: 0; +} + .ant-table-wrapper .ant-table-body { overflow-y: auto !important; max-height: none !important; diff --git a/frontend/src/pages/business/MeetingPointsManagement.tsx b/frontend/src/pages/business/MeetingPointsManagement.tsx index 7a4fa3d..256d396 100644 --- a/frontend/src/pages/business/MeetingPointsManagement.tsx +++ b/frontend/src/pages/business/MeetingPointsManagement.tsx @@ -388,14 +388,14 @@ export default function MeetingPointsManagement() { const ledgerTableContent = (
-
+
rowKey="id" columns={ledgerColumns} dataSource={records} loading={loading} totalCount={total} - scroll={{ x: 1100, y: 400 }} + scroll={{x: 1100, y: 280}} pagination={false} />
@@ -416,13 +416,13 @@ export default function MeetingPointsManagement() { const personalAccountTableContent = (
-
+
rowKey="userId" columns={personalAccountColumns} dataSource={pagedPersonalAccounts} totalCount={personalAccountRows.length} - scroll={{ x: 900, y: 400 }} + scroll={{x: 900, y: 280}} pagination={false} />
diff --git a/frontend/src/pages/business/TenantMeetingPointsSettings.tsx b/frontend/src/pages/business/TenantMeetingPointsSettings.tsx index 8f94194..0f5757f 100644 --- a/frontend/src/pages/business/TenantMeetingPointsSettings.tsx +++ b/frontend/src/pages/business/TenantMeetingPointsSettings.tsx @@ -325,14 +325,14 @@ export default function TenantMeetingPointsSettings() { 平台管理员可查看并调整全部租户的余额校验开关。
-
+
rowKey="tenantId" columns={columns} dataSource={records} loading={loading} totalCount={total} - scroll={{ x: 1200, y: 500 }} + scroll={{x: 1200, y: "calc(100vh - 380px)"}} pagination={false} />
diff --git a/frontend/src/pages/system/logs/index.tsx b/frontend/src/pages/system/logs/index.tsx index 3019013..1b4555a 100644 --- a/frontend/src/pages/system/logs/index.tsx +++ b/frontend/src/pages/system/logs/index.tsx @@ -64,7 +64,11 @@ export default function Logs() { const loadData = async (currentParams = params) => { setLoading(true); try { - const result = await fetchLogs({ ...currentParams, logType: activeTab }); + const apiParams = { + ...currentParams, + sortOrder: currentParams.sortOrder === "ascend" ? "asc" : currentParams.sortOrder === "descend" ? "desc" : undefined + }; + const result = await fetchLogs({...apiParams, logType: activeTab}); setData(result.records || []); setTotal(result.total || 0); } finally { @@ -95,12 +99,14 @@ export default function Logs() { }, [activeTab, isPlatformAdmin, params.tenantId]); const handleTableChange = (pagination: any, _filters: any, sorter: any) => { + const sField = sorter?.field || "createdAt"; + const sOrder = sorter?.order || undefined; setParams({ ...params, - current: pagination.current, - size: pagination.pageSize, - sortField: sorter.field || "createdAt", - sortOrder: sorter.order || "descend" + current: pagination?.current || params.current, + size: pagination?.pageSize || params.size, + sortField: sField, + sortOrder: sOrder }); }; @@ -345,7 +351,7 @@ export default function Logs() { : <>