import { View, Text, ScrollView } from '@tarojs/components'; import Taro from '@tarojs/taro'; import { useState, useEffect } from 'react'; import { getCommissionStats, getMyCommissionList } from '@/api/shop/shopCommissionRecord'; import EmptyState from '@/components/common/EmptyState'; import { Loading } from '@nutui/nutui-react-taro'; import './index.scss'; definePageConfig({ navigationBarTitleText: '我的佣金', }); export default function CommissionPage() { const [stats, setStats] = useState({}); const [list, setList] = useState([]); const [loading, setLoading] = useState(false); const [page, setPage] = useState(1); const [hasMore, setHasMore] = useState(true); const [activeTab, setActiveTab] = useState(0); // 0待结算/1已结算 useEffect(() => { loadStats(); loadList(true); }, []); const loadStats = async () => { try { const res = await getCommissionStats(); if (res.code === 200) { setStats(res.data); } } catch (error) { console.error('加载统计失败', error); } }; const loadList = async (isRefresh = false) => { if (loading) return; setLoading(true); try { const currentPage = isRefresh ? 1 : page; const res = await getMyCommissionList({ status: activeTab, page: currentPage, limit: 20 }); if (res.code === 200) { const newList = res.data.list || []; setList(isRefresh ? newList : [...list, ...newList]); setPage(currentPage + 1); setHasMore(newList.length >= 20); } } catch (error) { console.error('加载列表失败', error); } finally { setLoading(false); } }; const handleTabChange = (tab: number) => { setActiveTab(tab); setPage(1); setHasMore(true); loadList(true); }; const handleWithdraw = () => { Taro.navigateTo({ url: '/pages/user/withdraw/index' }); }; const getStatusText = (status: number) => { const map: Record = { 0: '待结算', 1: '已结算', 2: '已失效' }; return map[status] || '未知'; }; return ( {/* 统计区域 */} 待结算佣金(元) {stats.pendingTotal || '0.00'} 已结算佣金(元) {stats.settledTotal || '0.00'} 去提现 {/* 标签页 */} handleTabChange(0)} > 待结算({stats.pendingCount || 0}) handleTabChange(1)} > 已结算({stats.settledCount || 0}) {/* 列表 */} hasMore && loadList()} > {list.length === 0 && !loading ? ( ) : ( list.map((item) => ( 订单号: {item.orderNo} +{item.commissionAmount} 订单金额: ¥{item.orderAmount} {getStatusText(item.status)} {item.settleTime && ( 结算时间: {item.settleTime} )} )) )} {loading && 加载中...} ); }