import { useState, useEffect } from 'react'
import { Card, Row, Col, Statistic, Table, Spin, Descriptions } from 'antd'
import { ProjectOutlined, FileTextOutlined } from '@ant-design/icons'
import { getPersonalStats } from '@/api/dashboard'
import MainLayout from '@/components/MainLayout/MainLayout'
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,
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: '#cf1322' }}
/>
{/* 最近的个人项目 */}
{/* 最近的分享项目 */}
)
}
export default Desktop