feat(client): 增加审计日志页面与权限路由菜单

这个提交包含在:
2026-02-07 21:54:37 +08:00
父节点 c4df9a419a
当前提交 4c7018ca4a
共修改 6 个文件,包含 263 行新增和 3 行删除
+50
查看文件
@@ -0,0 +1,50 @@
import { apiRequestData } from "./http";
export type AuditLogItem = {
id: string;
requestId: string;
actorId: string;
actorName: string;
actorEmail: string;
action: string;
targetType: string;
targetId: string | null;
ipAddress: string | null;
userAgent: string | null;
extra: Record<string, unknown>;
createdAt: string;
};
export type AuditLogListResponse = {
page: number;
pageSize: number;
total: number;
items: AuditLogItem[];
};
export type AuditLogQuery = {
page?: number;
pageSize?: number;
actorId?: string;
action?: string;
targetType?: string;
dateFrom?: string;
dateTo?: string;
};
function toQueryString(query: AuditLogQuery) {
const params = new URLSearchParams();
for (const [key, value] of Object.entries(query)) {
if (value == null || value === "") {
continue;
}
params.set(key, String(value));
}
const encoded = params.toString();
return encoded ? `?${encoded}` : "";
}
export async function fetchAuditLogs(query: AuditLogQuery) {
return apiRequestData<AuditLogListResponse>(`/api/audit-logs${toQueryString(query)}`);
}