import { View, Text, ScrollView } from '@tarojs/components'; import Taro from '@tarojs/taro'; import { useState, useEffect } from 'react'; import { getWithdrawStats, getMyWithdrawList } from '@/api/shop/shopWithdrawRecord'; import EmptyState from '@/components/common/EmptyState'; import { Loading } from '@nutui/nutui-react-taro'; import './index.scss'; definePageConfig({ navigationBarTitleText: '提现记录', }); export default function WithdrawListPage() { 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(-1); // -1全部/0待审核/1通过/4完成 useEffect(() => { loadStats(); loadList(true); }, []); const loadStats = async () => { try { const res = await getWithdrawStats(); 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 params: any = { page: currentPage, limit: 20 }; if (activeTab >= 0) { params.status = activeTab; } const res = await getMyWithdrawList(params); 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 getStatusText = (status: number) => { const map: Record = { 0: '待审核', 1: '审核通过', 2: '审核拒绝', 3: '打款中', 4: '已完成', 5: '已取消' }; return map[status] || '未知'; }; const getStatusClass = (status: number) => { if (status === 4) return 'status-success'; if (status === 2 || status === 5) return 'status-fail'; return 'status-pending'; }; return ( {/* 统计区域 */} 提现中(元) {stats.withdrawingTotal || '0.00'} 今日提现(元) {stats.todayTotal || '0.00'} {/* 标签页 */} handleTabChange(-1)} > 全部 handleTabChange(0)} > 待审核 handleTabChange(4)} > 已完成 {/* 列表 */} hasMore && loadList()} > {list.length === 0 && !loading ? ( ) : ( list.map((item) => ( ¥{item.withdrawAmount} {getStatusText(item.status)} 实际到账: ¥{item.actualAmount} {item.fee > 0 && ( 手续费: ¥{item.fee} )} {item.createTime} {item.auditRemark && ( 备注: {item.auditRemark} )} )) )} {loading && 加载中...} ); }