import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { PageHeader } from '@/components/layout/PageHeader'; import { Card } from '@/components/common/Card'; import { Empty } from '@/components/common/Empty'; import * as followupService from '@/services/followup.service'; import type { FollowUp } from '@/types'; import { formatDate } from '@/utils/format'; import styles from './FollowUpListPage.module.css'; export function FollowUpListPage() { const navigate = useNavigate(); const [followups, setFollowups] = useState([]); const [tab, setTab] = useState<'upcoming' | 'completed'>('upcoming'); useEffect(() => { followupService.getFollowUps().then(setFollowups); }, []); const filtered = followups.filter((f) => tab === 'upcoming' ? f.status === 'upcoming' : f.status === 'completed'); const statusColor = (s: FollowUp['status']) => { if (s === 'upcoming') return '#3B82F6'; if (s === 'completed') return '#10B981'; return '#EF4444'; }; return (
{filtered.length === 0 ? ( ) : ( filtered.map((f) => (
{f.title} {f.status === 'upcoming' ? '待复查' : '已完成'}
{f.doctorName || '未分配'} · {f.patientName || ''}
{formatDate(f.scheduledAt, 'YYYY-MM-DD HH:mm')}
)) )}
); }