From d26274d89d377067c1e2648192cffbf89464b361 Mon Sep 17 00:00:00 2001
From: wsj <593216709@qq.com>
Date: Wed, 28 Oct 2026 23:34:32 +0800
Subject: [PATCH] feat: 拆包

---
 src/pages/platform/audit-logs/index.tsx |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/src/pages/platform/audit-logs/index.tsx b/src/pages/platform/audit-logs/index.tsx
new file mode 100644
index 0000000..9374cfe
--- /dev/null
+++ b/src/pages/platform/audit-logs/index.tsx
@@ -0,0 +1,64 @@
+import { useCallback, useMemo, useState } from 'react';
+import { ProTable } from '@ant-design/pro-components';
+import { createAuditLogColumns } from './columns';
+import AuditLogDetailDrawer from './components/AuditLogDetailDrawer';
+import { getAuditLogList } from './service';
+import type { AuditLogListQuery, AuditLogVO } from './types';
+
+const AuditLogs = () => {
+  const [detail, setDetail] = useState<AuditLogVO | null>(null);
+
+  const openDetail = useCallback((record: AuditLogVO) => {
+    setDetail(record);
+  }, []);
+
+  const closeDetail = useCallback(() => {
+    setDetail(null);
+  }, []);
+
+  const columns = useMemo(() => createAuditLogColumns({ onDetail: openDetail }), [openDetail]);
+
+  const fetchList = useCallback(
+    (params: AuditLogListQuery) =>
+      getAuditLogList({
+        page: params.current,
+        size: params.pageSize,
+        module: params.module,
+        action: params.action,
+        entityType: params.entityType,
+        resultStatus: params.resultStatus,
+        operatorId: params.operatorId,
+        start: params.start,
+        end: params.end,
+      }).then((result) => ({
+        data: result.records ?? [],
+        total: result.total ?? 0,
+        success: true,
+      })),
+    [],
+  );
+
+  return (
+    <div className="audit-log-page">
+      <ProTable<AuditLogVO, AuditLogListQuery>
+        rowKey="logId"
+        columns={columns}
+        cardProps={{ bodyStyle: { padding: 20 } }}
+        search={{ labelWidth: 'auto', defaultCollapsed: false }}
+        scroll={{ x: 1430 }}
+        options={false}
+        pagination={{
+          defaultPageSize: 10,
+          showSizeChanger: true,
+          hideOnSinglePage: false,
+          showTotal: (total) => `共 ${total} 条`,
+        }}
+        request={fetchList}
+      />
+
+      <AuditLogDetailDrawer open={detail !== null} record={detail} onClose={closeDetail} />
+    </div>
+  );
+};
+
+export default AuditLogs;

--
Gitblit v1.9.3