import { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import api from '@/services/api' import type { Project } from '@/types' import dayjs from 'dayjs' export default function ProjectsPage() { const [projects, setProjects] = useState([]) const [showCreate, setShowCreate] = useState(false) const [form, setForm] = useState({ name: '', description: '', owner_id: 1 }) const navigate = useNavigate() const fetchProjects = () => { api.get('/projects').then(({ data }) => setProjects(data)) } useEffect(() => { fetchProjects() }, []) const createProject = async (e: React.FormEvent) => { e.preventDefault() await api.post('/projects', form) setForm({ name: '', description: '', owner_id: 1 }) setShowCreate(false) fetchProjects() } return (

📁 项目 ({projects.length})

{showCreate && (
setForm({ ...form, name: e.target.value })} /> setForm({ ...form, description: e.target.value })} />
)}
{projects.map((p) => (
navigate(`/projects/${p.id}`)}>

{p.name}

{p.description || '暂无描述'}

创建于 {dayjs(p.created_at).format('YYYY-MM-DD')}
))} {projects.length === 0 &&

暂无项目,点击上方创建

}
) }