import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import PageHeader from '@dukang/shared-ui/PageHeader'; import PullToRefresh from '@dukang/shared-ui/PullToRefresh'; import type { PartnerCommissionOrderItem } from '@dukang/shared-types'; import { request } from '../lib/api'; import { toastError } from '../lib/toast'; import { usePartnerPageView } from '../lib/usePageView'; function fmtMoney(n: number) { return n.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } type ListRes = { items: PartnerCommissionOrderItem[]; total: number }; export default function CommissionOrdersPage() { usePartnerPageView('partner_commission_orders_view'); const navigate = useNavigate(); const [items, setItems] = useState([]); const [total, setTotal] = useState(0); const [loading, setLoading] = useState(true); async function load() { setLoading(true); try { const res = await request('PARTNER_H5', '/partner/commissions/orders?page=1&pageSize=50'); setItems(res.items ?? []); setTotal(res.total ?? 0); } catch (e) { toastError(e instanceof Error ? e.message : '加载失败'); setItems([]); } finally { setLoading(false); } } useEffect(() => { void load(); }, []); return ( navigate(-1)} />

{loading ? '加载中…' : `共 ${total} 笔关联酒单`}

{!loading && items.length === 0 &&
暂无订单佣金
} {items.map((o) => (

{o.productName}

{o.orderNo} · ×{o.quantity}

{o.paidAt ? o.paidAt.slice(0, 16).replace('T', ' ') : ''}

¥{fmtMoney(o.commission)}

实付 ¥{fmtMoney(o.payAmount)} × {((o.rate ?? 0) * 100).toFixed(2)}%

))}
); }