import { ArrowLeftOutlined } from '@ant-design/icons' import { Alert, Button, Card, Descriptions, Skeleton, Space, Table, Typography } from 'antd' import type { TableColumnsType } from 'antd' import { useQuery } from '@tanstack/react-query' import { useNavigate, useParams } from 'react-router' import JsonPreview from '@/components/admin/JsonPreview' import PageHeader from '@/components/admin/PageHeader' import StatusTag from '@/components/admin/StatusTag' import { fetchAdminOrderDetail } from '@/services/admin' import type { AdminOrderDetail, AdminTaskListItem } from '@/types/admin' import { formatAdminDateTime } from '@/utils/admin-time' export default function AdminOrderDetailPage() { const navigate = useNavigate() const { orderId = '' } = useParams() const query = useQuery({ queryKey: ['admin-order-detail', orderId], queryFn: () => fetchAdminOrderDetail(orderId), enabled: Boolean(orderId), }) const detail = query.data?.data if (query.isLoading) { return (
} />
) } if (query.error || !detail) { return (
} />
) } const taskColumns: TableColumnsType = [ { title: '任务号', dataIndex: 'taskNo', minWidth: 180, render: (_, row) => ( navigate(`/admin/tasks/${row.taskId}`)}> {row.taskNo} ), }, { title: '状态', minWidth: 220, render: (_, row) => ( ), }, { title: '角色', minWidth: 160, render: (_, row) => (
{row.roleName || '-'} {row.roleId || '-'}
), }, { title: '错误', dataIndex: 'lastError', minWidth: 220, render: (value) => {value || '-'}, }, ] return (
} /> {detail.order.orderId} {detail.order.shopName || detail.order.shopId || '-'} {detail.order.platformOrderId} {detail.order.totalAmount} {detail.order.currency} {formatAdminDateTime(detail.order.createdAt)} {formatAdminDateTime(detail.order.updatedAt)} {detail.order.itemSummary || '-'} rowKey="orderItemId" pagination={false} dataSource={detail.items} scroll={{ x: 760 }} columns={[ { title: '商品', dataIndex: 'itemTitle', minWidth: 240 }, { title: 'SKU', dataIndex: 'skuCode', minWidth: 180 }, { title: '数量', dataIndex: 'quantity', width: 90 }, { title: '履约模式', dataIndex: 'deliveryMode', minWidth: 140 }, ]} /> rowKey="taskId" pagination={false} dataSource={detail.tasks} columns={taskColumns} scroll={{ x: 900 }} />
) } function BackButton() { const navigate = useNavigate() return ( ) }