import { useEffect, useState } from 'react'; import { Link, useNavigate, useSearchParams } from 'react-router-dom'; import PageHeader from '@dukang/shared-ui/PageHeader'; import AppImage from '@dukang/shared-ui/AppImage'; import OrderStatusTabs from '@dukang/shared-ui/OrderStatusTabs'; import { request } from '../lib/api'; const TABS = [ { key: 'all', label: '全部' }, { key: 'pending_pay', label: '待付款' }, { key: 'pending_ship', label: '待发货' }, { key: 'pending_receive', label: '待收货' }, { key: 'completed', label: '已完成' }, ]; const STATUS_LABEL: Record = { PENDING_PAY: '待付款', PENDING_SHIP: '待发货', OUT_WAREHOUSE: '出库中', SHIPPING: '配送中', PENDING_RECEIVE: '待收货', COMPLETED: '已完成', RESHIP: '补发中', }; export default function OrderListPage() { const [params, setParams] = useSearchParams(); const tab = params.get('tab') || 'all'; const [data, setData] = useState<{ list: Array> }>({ list: [] }); const navigate = useNavigate(); useEffect(() => { request<{ list: Array> }>('USER_H5', `/trade/orders?tab=${tab}`).then(setData); }, [tab]); return (
navigate('/mine')} /> setParams({ tab: key })} /> {data.list.length === 0 &&
暂无订单
} {data.list.map((o, i) => { const items = (o.items as Array>) || []; const item = items[0]; const isReshipDemo = i === 0 && tab === 'all'; const isPendingPay = String(o.status) === 'PENDING_PAY'; return (
订单号: {String(o.orderNo)} {STATUS_LABEL[String(o.status)] || String(o.status)}
{isReshipDemo && 补发示例} {item && (
{String(item.productName)}
{String(item.productSpec)} x{Number(item.quantity)}
¥{Number(o.payAmount)}
)}
{isPendingPay && ( )} {isReshipDemo ? '查看进度' : '查看详情'}
); })}
); }