小程序修改

This commit is contained in:
2026-07-12 19:44:36 +08:00
parent 3b4833b51a
commit e2dfb08de3
45 changed files with 2028 additions and 347 deletions
+23 -4
View File
@@ -6,11 +6,30 @@ import SubPageHeader from '../../components/SubPageHeader';
import { request, toast } from '../../lib/api';
const TABS = [
{ key: 'all', label: '全部订单' },
{ key: 'pending_pay', label: '待付款' },
{ key: 'paid', label: '已付款' },
{ key: 'completed', label: '已完成' },
] as const;
const STATUS_LABELS: Record<string, string> = {
PENDING_PAY: '待付款',
PENDING_SHIP: '已付款',
OUT_WAREHOUSE: '已付款',
SHIPPED: '已付款',
DELIVERED: '已付款',
COMPLETED: '已完成',
CANCELLED: '已取消',
};
function orderStatusLabel(tab: string, status?: string): string {
if (tab !== 'all') {
return TABS.find((t) => t.key === tab)?.label || status || '';
}
if (!status) return '';
return STATUS_LABELS[status] || status;
}
type OrderRow = {
id: string;
orderNo?: string;
@@ -23,19 +42,19 @@ type OrderRow = {
export default function OrdersPage() {
const router = useRouter();
const initialTab = (router.params.tab as string) || 'pending_pay';
const initialTab = (router.params.tab as string) || 'all';
const [tab, setTab] = useState(initialTab);
const [orders, setOrders] = useState<OrderRow[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
setLoading(true);
request<{ items?: OrderRow[]; total?: number } | OrderRow[]>(
request<{ list?: OrderRow[]; items?: OrderRow[]; total?: number } | OrderRow[]>(
`/trade/orders?tab=${encodeURIComponent(tab)}&pageSize=20`,
)
.then((data) => {
if (Array.isArray(data)) setOrders(data);
else setOrders(Array.isArray(data?.items) ? data.items : []);
else setOrders(Array.isArray(data?.list) ? data.list : Array.isArray(data?.items) ? data.items : []);
})
.catch((e) => {
toast(e instanceof Error ? e.message : '加载失败');
@@ -71,7 +90,7 @@ export default function OrdersPage() {
<View className="order-list-head">
<Text className="order-list-no">{o.orderNo || o.id}</Text>
<Text className="order-list-status">
{TABS.find((t) => t.key === tab)?.label || o.status || ''}
{orderStatusLabel(tab, o.status)}
</Text>
</View>
<View className="order-list-body">