import { useQuery } from '@tanstack/react-query' import { getApprovalDetail } from '../services/approval' import ApprovalFlow from './ApprovalFlow' import ApprovalAction from './ApprovalAction' import styles from './ApprovalDetail.module.css' interface ApprovalDetailProps { id: string } export default function ApprovalDetail({ id }: ApprovalDetailProps) { const { data, isLoading, error } = useQuery({ queryKey: ['approval-detail', id], queryFn: () => getApprovalDetail(id), }) if (isLoading) { return
加载中...
} if (error) { return
加载失败: {error.message}
} const order = data?.data if (!order) { return
未找到审批详情
} const getStatusText = (status: string) => { const statusMap: Record = { draft: '草稿', pending: '审批中', approved: '已通过', rejected: '已拒绝', cancelled: '已撤销', } return statusMap[status] || status } return (
{/* 标题 */}

{order.title}

{getStatusText(order.status)}
{/* 审批流程 */} {order.flow && (

审批流程

)} {/* 表单数据 */} {order.formData && Object.keys(order.formData).length > 0 && (

申请内容

{Object.entries(order.formData).map(([key, value]) => (
{key}: {String(value)}
))}
)} {/* 审批记录 */} {order.timeline && order.timeline.length > 0 && (

审批记录

{order.timeline.map((record: any) => (
{record.approver?.name} {record.action === 'approve' && '通过'} {record.action === 'reject' && '拒绝'} {record.action === 'submit' && '提交'} {record.action === 'cancel' && '撤销'}
{record.comment && (
{record.comment}
)}
{new Date(record.createdAt).toLocaleString('zh-CN')}
))}
)} {/* 操作按钮 */}
) }