import React, { useState } from 'react'; import { Download, Search, Calendar, Filter } from 'lucide-react'; import { Button, Input, TableHeader, TableRow, TableHead, TableCell, Badge } from '../components/UI'; import { mockCallLogs } from '../services/mockData'; export const HistoryPage: React.FC = () => { const [logs] = useState(mockCallLogs); const [searchTerm, setSearchTerm] = useState(''); const [statusFilter, setStatusFilter] = useState<'all' | 'connected' | 'missed'>('all'); const [sourceFilter, setSourceFilter] = useState<'all' | 'debug' | 'external'>('all'); const filteredLogs = logs.filter(log => { const matchesSearch = log.agentName.toLowerCase().includes(searchTerm.toLowerCase()); const matchesStatus = statusFilter === 'all' || log.status === statusFilter; const matchesSource = sourceFilter === 'all' || log.source === sourceFilter; return matchesSearch && matchesStatus && matchesSource; }); const handleExport = () => { // Generate CSV content const headers = ['ID', 'Agent', 'Source', 'Status', 'Start Time', 'Duration']; const rows = filteredLogs.map(log => [ log.id, log.agentName, log.source, log.status, log.startTime, log.duration ].join(',')); const csvContent = "data:text/csv;charset=utf-8," + [headers.join(','), ...headers.join(',')].join('\n'); const encodedUri = encodeURI(csvContent); const link = document.createElement("a"); link.setAttribute("href", encodedUri); link.setAttribute("download", "history_logs.csv"); document.body.appendChild(link); link.click(); document.body.removeChild(link); }; return (

历史记录

setSearchTerm(e.target.value)} />
编号 代理小助手 来源 接听状态 通话接通时间 通话时长 {filteredLogs.map(log => ( #{log.id} {log.agentName} {log.source === 'debug' ? '调试' : '外部'} {log.status === 'connected' ? '已接通' : '未接通'} {log.startTime} {log.duration} ))} {filteredLogs.length === 0 && ( 暂无记录 )}
); };