import { useEffect, useState } from "react"; import { Drawer, Table, Tag, Spin, Timeline, App } from "antd"; import { TaskAssignmentLogDto } from "../taskCoordination.model"; import { getAssignmentLogsUsingGet } from "../taskCoordination.api"; import { AssignmentActionMap } from "../taskCoordination.const"; interface AssignmentLogDrawerProps { open: boolean; taskId: string | null; taskName?: string; onClose: () => void; } const actionColorMap: Record = { ASSIGN: "blue", REASSIGN: "orange", REVOKE: "red", }; export default function AssignmentLogDrawer({ open, taskId, taskName, onClose, }: AssignmentLogDrawerProps) { const { message } = App.useApp(); const [loading, setLoading] = useState(false); const [logs, setLogs] = useState([]); useEffect(() => { if (!open || !taskId) return; setLoading(true); getAssignmentLogsUsingGet(taskId) .then((res: any) => { setLogs(res?.data ?? []); }) .catch(() => { message.error("加载分配记录失败"); }) .finally(() => { setLoading(false); }); }, [open, taskId, message]); return ( {logs.length === 0 && !loading ? (
暂无分配记录
) : ( ({ color: actionColorMap[log.action] || "gray", children: (
{AssignmentActionMap[log.action] || log.action} {log.createdAt}
操作人: {log.operatorName || "-"} {log.userName && ( <> 目标用户: {log.userName} )}
{log.remark && (
备注:{log.remark}
)}
), }))} /> )}
); }