import { useEffect, useMemo, useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import PageHeader from '@dukang/shared-ui/PageHeader'; import { isLoggedIn, request } from '../lib/api'; type DateFilter = 'today' | '7d' | '30d'; type StatusFilter = 'ALL' | 'PENDING_SHIP' | 'SHIPPING' | 'COMPLETED' | 'ABNORMAL'; function orderStatusLabel(status: string) { const s = String(status).toUpperCase(); if (s.includes('SHIP') || s === 'OUT_WAREHOUSE') return { label: '运输中', color: 'var(--color-status-blue)' }; if (s === 'COMPLETED') return { label: '已完成', color: 'var(--color-success-green)' }; if (s.includes('PENDING') || s === 'PAID') return { label: '待发货', color: 'var(--color-secondary)' }; if (s.includes('ERROR') || s.includes('ABNORMAL')) return { label: '异常', color: 'var(--color-error)' }; return { label: status, color: 'var(--color-subtle-gray)' }; } const DATE_FILTERS: { key: DateFilter; label: string }[] = [ { key: 'today', label: '今日' }, { key: '7d', label: '近7天' }, { key: '30d', label: '近30天' }, ]; const STATUS_FILTERS: { key: StatusFilter; label: string }[] = [ { key: 'ALL', label: '全部' }, { key: 'PENDING_SHIP', label: '待发货' }, { key: 'SHIPPING', label: '运输中' }, { key: 'COMPLETED', label: '已完成' }, { key: 'ABNORMAL', label: '异常' }, ]; export default function OrderListPage() { const navigate = useNavigate(); const [data, setData] = useState<{ list: Array> }>({ list: [] }); const [tab, setTab] = useState<'orders' | 'coupons'>('orders'); const [dateFilter, setDateFilter] = useState('today'); const [statusFilter, setStatusFilter] = useState('ALL'); useEffect(() => { if (!isLoggedIn()) { navigate('/login'); return; } request('PARTNER_H5', '/partner/orders').then(setData); }, [navigate]); const filtered = useMemo(() => data.list.filter((o) => { if (statusFilter === 'ALL') return true; const s = String(o.status).toUpperCase(); if (statusFilter === 'PENDING_SHIP') return s.includes('PENDING') || s === 'PAID'; if (statusFilter === 'SHIPPING') return s.includes('SHIP') || s === 'OUT_WAREHOUSE'; if (statusFilter === 'COMPLETED') return s === 'COMPLETED'; if (statusFilter === 'ABNORMAL') return s.includes('ERROR') || s.includes('ABNORMAL'); return true; }), [data.list, statusFilter]); return (
navigate('/')} />
{tab === 'orders' && ( <>
{DATE_FILTERS.map((f) => ( ))}
{STATUS_FILTERS.map((f) => ( ))}
{filtered.length === 0 &&
暂无订单
} {filtered.map((o) => { const st = orderStatusLabel(String(o.status)); const payAmount = Number(o.payAmount || 0); return (
NO. {String(o.orderNo)} {st.label}
liquor

{String(o.productName || '杜康好酒')}

¥{payAmount.toFixed(2)}

confirmation_number ¥{Math.round(payAmount * 0.2)}权益
location_on

{String(o.receiverAddress || '收货地址')}

下单佣金

¥{(payAmount * 0.04).toFixed(2)}

核销佣金

¥0.00

获赠权益

¥{Math.round(payAmount * 0.2)}

); })} )} {tab === 'coupons' && (

累计已发放权益金额

42,800.00

权益记录 preV1 占位

)}
); }