import React, { useState, useEffect } from 'react'; import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; import { Upload, RefreshCw, Users, BarChart2, ThumbsUp, Database } from 'lucide-react'; import { Alert, AlertDescription } from '@/components/ui/alert'; const AdminDashboard = () => { const [stats, setStats] = useState({ accuracy: 95.5, interactions: 1234, satisfaction: 98, lastUpdate: new Date().toLocaleString(), averageResponseTime: 0.5, totalQuestions: 3500 }); const [learningData, setLearningData] = useState([ { date: '2024-01', accuracy: 90 }, { date: '2024-02', accuracy: 92 }, { date: '2024-03', accuracy: 94 }, { date: '2024-04', accuracy: 95.5 } ]); const [isUpdating, setIsUpdating] = useState(false); const [updateStatus, setUpdateStatus] = useState(null); const updateKnowledgeBase = async () => { setIsUpdating(true); setUpdateStatus('درحال به‌روزرسانی پایگاه دانش...'); try { // ارسال درخواست به‌روزرسانی به سرور const response = await fetch('/api/update-knowledge-base', { method: 'POST', headers: { 'Content-Type': 'application/json', } }); if (response.ok) { setUpdateStatus('به‌روزرسانی با موفقیت انجام شد'); setStats(prev => ({ ...prev, lastUpdate: new Date().toLocaleString() })); } else { throw new Error('خطا در به‌روزرسانی'); } } catch (error) { setUpdateStatus('خطا در به‌روزرسانی پایگاه دانش'); } finally { setIsUpdating(false); // پاک کردن پیام وضعیت بعد از 3 ثانیه setTimeout(() => setUpdateStatus(null), 3000); } }; const handleFileUpload = async (event) => { const file = event.target.files[0]; if (!file) return; const formData = new FormData(); formData.append('file', file); try { const response = await fetch('/api/upload-document', { method: 'POST', body: formData }); if (response.ok) { setUpdateStatus('فایل با موفقیت آپلود شد'); } else { throw new Error('خطا در آپلود فایل'); } } catch (error) { setUpdateStatus('خطا در آپلود فایل'); } }; return (
{/* Header */}

پنل مدیریت

آخرین به‌روزرسانی: {stats.lastUpdate}

{/* Status Alert */} {updateStatus && ( {updateStatus} )} {/* Stats Cards */}
{/* Response Time Card */}

زمان پاسخ‌دهی

{stats.averageResponseTime}s

{/* Questions Card */}

تعداد سوالات

{stats.totalQuestions}

{/* Accuracy Card */}

دقت پاسخ‌گویی

{stats.accuracy}%

{/* Chart Section */} روند یادگیری
{/* Actions Section */}
{/* Update Knowledge Base Button */} {/* File Upload Section */}
); }; export default AdminDashboard;