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 { PartnerAssocUserItem } from '@dukang/shared-types'; import { request } from '../lib/api'; import { toastError } from '../lib/toast'; import { usePartnerPageView } from '../lib/usePageView'; type ListRes = { items: PartnerAssocUserItem[]; total: number; page: number; pageSize: number }; export default function AssocUsersPage() { usePartnerPageView('partner_assoc_users_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/assoc/users?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((u) => (

{u.nickname || u.userNo}

{u.phone || '未绑定手机'}

{u.boundAt ? u.boundAt.slice(0, 16).replace('T', ' ') : ''}

{u.orderCount} 单
))}
); }