import { useState, useEffect } from 'react' import { Card, Row, Col, Statistic, Table, Spin, Descriptions } from 'antd' import { ProjectOutlined, FileTextOutlined, TeamOutlined } from '@ant-design/icons' import { getPersonalStats } from '@/api/dashboard' import Toast from '@/components/Toast/Toast' function Desktop() { const [loading, setLoading] = useState(true) const [userInfo, setUserInfo] = useState({}) const [stats, setStats] = useState({ personal_projects_count: 0, shared_projects_count: 0, document_count: 0, }) const [recentPersonalProjects, setRecentPersonalProjects] = useState([]) const [recentSharedProjects, setRecentSharedProjects] = useState([]) useEffect(() => { loadPersonalData() }, []) const loadPersonalData = async () => { try { const res = await getPersonalStats() if (res.data) { setUserInfo(res.data.user_info) setStats(res.data.stats) setRecentPersonalProjects(res.data.recent_personal_projects) setRecentSharedProjects(res.data.recent_shared_projects) } } catch (error) { console.error('Load personal data error:', error) Toast.error('加载个人桌面数据失败') } finally { setLoading(false) } } const personalProjectColumns = [ { title: '项目名称', dataIndex: 'name', key: 'name', }, { title: '描述', dataIndex: 'description', key: 'description', }, { title: '创建时间', dataIndex: 'created_at', key: 'created_at', render: (text) => (text ? new Date(text).toLocaleString('zh-CN') : '-'), }, ] const sharedProjectColumns = [ { title: '项目名称', dataIndex: 'name', key: 'name', }, { title: '描述', dataIndex: 'description', key: 'description', }, { title: '角色', dataIndex: 'role', key: 'role', render: (role) => { const roleMap = { admin: '管理员', editor: '编辑者', viewer: '查看者', } return roleMap[role] || role }, }, { title: '加入时间', dataIndex: 'joined_at', key: 'joined_at', render: (text) => (text ? new Date(text).toLocaleString('zh-CN') : '-'), }, ] if (loading) { return (
) } return (

个人桌面

{/* 个人信息 */} {userInfo.username} {userInfo.email} {userInfo.id} {userInfo.created_at ? new Date(userInfo.created_at).toLocaleString('zh-CN') : '-'} {/* 统计卡片 */} } valueStyle={{ color: '#1890ff' }} /> } valueStyle={{ color: '#52c41a' }} /> } valueStyle={{ color: '#cf1322' }} /> {/* 最近的个人项目 */} {/* 最近的分享项目 */}
) } export default Desktop