import { Card, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Badge } from '@/components/ui/badge'; import { Search, RefreshCw } from 'lucide-react'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { operationLogs } from '@/mocks/data'; import type { OperationLog } from '@/types'; interface SystemLogsTabProps { searchQuery: string; setSearchQuery: (v: string) => void; } export function SystemLogsTab({ searchQuery, setSearchQuery }: SystemLogsTabProps) { const filteredLogs = operationLogs.filter( (log) => log.username.toLowerCase().includes(searchQuery.toLowerCase()) || log.module.toLowerCase().includes(searchQuery.toLowerCase()) || log.action.toLowerCase().includes(searchQuery.toLowerCase()) ); const getLogResultBadge = (result: OperationLog['result']) => { return result === 'success' ? ( 成功 ) : ( 失败 ); }; return ( <> {/* Filters */}
setSearchQuery(e.target.value)} className="pl-9 h-9 bg-slate-800/50 border-slate-700 text-slate-200 placeholder:text-slate-500" />
{/* Logs Table */}
时间 用户 模块 操作 资源 IP地址 结果 {filteredLogs.map((log) => ( {new Date(log.createdAt).toLocaleString()} {log.username} {log.module} {log.action} {log.resource} {log.ip} {getLogResultBadge(log.result)} ))}
); }