import { useEffect, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import PageHeader from '@dukang/shared-ui/PageHeader'; import { request } from '../lib/api'; import { toastError } from '../lib/toast'; import type { PartnerProxyOrderOptions, PartnerProxyOrderProductOption } from '@dukang/shared-types'; function fmtMoney(n: number) { return n.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } export default function ProxyOrderProductsPage() { const navigate = useNavigate(); const [searchParams] = useSearchParams(); const selectedId = searchParams.get('selected') || ''; const [products, setProducts] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { request('PARTNER_H5', '/partner/proxy-orders/options') .then((data) => setProducts(Array.isArray(data.products) ? data.products : [])) .catch((e) => toastError(e instanceof Error ? e.message : '加载失败')) .finally(() => setLoading(false)); }, []); function pick(product: PartnerProxyOrderProductOption) { navigate(`/proxy-order?productId=${encodeURIComponent(product.id)}`, { replace: true }); } return (
navigate(-1)} />
{loading ?

加载中…

: null} {!loading && products.length === 0 ? (

暂无可售商品

) : null} {products.map((p) => { const benefit = p.benefitAmount != null ? Number(p.benefitAmount) : Number(p.price); const active = p.id === selectedId; return ( ); })}
); }