feat(audit): 完成审计日志页面筛选与导出
This commit is contained in:
@@ -12,8 +12,7 @@ import type {
|
||||
BackendPage,
|
||||
} from './types'
|
||||
|
||||
// 审计日志当前只用于签署留痕,跟随签署工作台的开关;后续有独立页面时再拆出来。
|
||||
const useMockData = mockFlags.signing
|
||||
const useMockData = mockFlags.audit
|
||||
|
||||
function formatDateTime(value: string) {
|
||||
const date = new Date(value)
|
||||
@@ -36,8 +35,10 @@ function mapAuditLog(dto: AuditLogResponseDto): AuditLogRecord {
|
||||
id: dto.id,
|
||||
action: dto.action,
|
||||
resourceType: dto.resourceType,
|
||||
resourceId: dto.resourceId,
|
||||
operatorId: dto.operatorId,
|
||||
resourceId: dto.resourceId ?? '',
|
||||
operatorId: dto.operatorId ?? '',
|
||||
operatorName: dto.operatorName ?? (dto.operatorId ? '未知' : '系统'),
|
||||
operatorRoles: dto.operatorRoles ?? '—',
|
||||
clientIp: dto.clientIp ?? '—',
|
||||
userAgent: dto.userAgent ?? '—',
|
||||
detailsJson: dto.detailsJson ?? '',
|
||||
@@ -74,6 +75,11 @@ export function getAuditLogs(query: AuditLogQuery): Promise<AuditLogListResponse
|
||||
params.keyword = query.keyword.trim()
|
||||
}
|
||||
|
||||
if (query.createdFrom) params.createdFrom = query.createdFrom
|
||||
if (query.createdTo) params.createdTo = query.createdTo
|
||||
if (query.operator?.trim()) params.operator = query.operator.trim()
|
||||
if (query.module) params.module = query.module
|
||||
|
||||
return request
|
||||
.get<ApiResponse<BackendCollection<AuditLogResponseDto>>>('/v1/audit-logs', { params })
|
||||
.then(unwrapApiResponse)
|
||||
@@ -82,3 +88,20 @@ export function getAuditLogs(query: AuditLogQuery): Promise<AuditLogListResponse
|
||||
return { ...page, records: page.records.map(mapAuditLog) }
|
||||
})
|
||||
}
|
||||
|
||||
export function exportAuditLogs(query: AuditLogQuery): Promise<Blob> {
|
||||
const params: Record<string, string | number> = {
|
||||
page: Math.max(query.page, 1),
|
||||
size: Math.min(Math.max(query.pageSize, 1), 200),
|
||||
}
|
||||
if (query.keyword?.trim()) params.keyword = query.keyword.trim()
|
||||
if (query.createdFrom) params.createdFrom = query.createdFrom
|
||||
if (query.createdTo) params.createdTo = query.createdTo
|
||||
if (query.operator?.trim()) params.operator = query.operator.trim()
|
||||
if (query.module) params.module = query.module
|
||||
|
||||
return request.get<Blob>('/v1/audit-logs/export', {
|
||||
params,
|
||||
responseType: 'blob',
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user