"use client"; import { useState } from "react"; import { listMajorEvents, listInquiries } from "@/lib/api-v2"; import { useScopeEffect } from "@/lib/company-scope"; import { CompanyNameTag } from "@/components/shared/CompanyNameTag"; import { PageContainer, Badge } from "@/components/shared/PageContainer"; import { LoadingSpinner } from "@/components/shared/LoadingSpinner"; import { EmptyState } from "@/components/shared/EmptyState"; /** 重大事项项。 */ interface MajorEvent { company_id?: string; event_type: string; title: string; severity: string; description?: string; } /** 追问清单项。 */ interface Inquiry { company_id?: string; status: string; questions?: unknown[]; } export default function EventsPage() { const [events, setEvents] = useState([]); const [inquiries, setInquiries] = useState([]); const [isLoading, setIsLoading] = useState(true); const [tab, setTab] = useState<"events" | "inquiries">("events"); useScopeEffect(() => { Promise.all([listMajorEvents(), listInquiries()]) .then(([e, i]) => { setEvents((e.data as MajorEvent[]) ?? []); setInquiries((i.data as Inquiry[]) ?? []); }) .catch(() => { setEvents([]); setInquiries([]); }) .finally(() => setIsLoading(false)); }); return (
{isLoading ? ( ) : tab === "events" ? ( events.length === 0 ? ( ) : (
{events.map((item, i) => (
{item.event_type}

{item.title}

{item.severity}
{item.description &&

{item.description}

}
))}
) ) : ( inquiries.length === 0 ? ( ) : (
{inquiries.map((item, i) => (

追问清单

{item.status}
{Array.isArray(item.questions) && (item.questions as unknown[]).map((q, qi) => (

• {String(q)}

))}
))}
) )}
); }