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'; import { usePageView } from '../lib/usePageView'; const TABS = [ { key: 'all', label: '全部' }, { key: 'pending_pay', label: '待付款' }, { key: 'paid', label: '已付款' }, { key: 'completed', label: '已完成' }, ]; const STATUS_LABEL: Record = { PENDING_PAY: '待付款', PENDING_SHIP: '待发货', OUT_WAREHOUSE: '已出库', SHIPPING: '配送中', PENDING_RECEIVE: '待收货', COMPLETED: '已完成', CANCELLED: '已取消', REFUNDING: '退款中', REFUNDED: '已退款', }; function isReshipOrder(order: Record) { return String(order.orderType) === 'RESHIPMENT'; } function orderStatusLabel(order: Record) { if (isReshipOrder(order)) return '补发中'; return STATUS_LABEL[String(order.status)] || String(order.status); } export default function OrderListPage() { const [params, setParams] = useSearchParams(); const tab = params.get('tab') || 'all'; usePageView('order_list_view', { tab }); 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) => { const items = (o.items as Array>) || []; const item = items[0]; const isReship = isReshipOrder(o); const isProxy = String(o.orderType) === 'PROXY' || o.isProxyOrder === true; const isPendingPay = String(o.status) === 'PENDING_PAY'; return (
订单号: {String(o.orderNo)} {isReship && ( 补发单 )} {isProxy && ( 代下单 )} {orderStatusLabel(o)}
{isProxy && o.proxyPartnerName ? (
由合伙人 {String(o.proxyPartnerName)} 代下
) : null} {item && (
{String(item.productName)}
{String(item.productSpec)} x{Number(item.quantity)}
¥{Number(o.payAmount)}
)}
{isPendingPay && ( )} 查看详情
); })}
); }