import React, {useState, useEffect, useCallback} from 'react' import {View, Text, ScrollView} from '@tarojs/components' import {ArrowDown} from '@nutui/icons-react-taro' import {Empty, PullToRefresh, DatePicker,Space, Loading} from '@nutui/nutui-react-taro' import Taro from '@tarojs/taro' import {pageShopDealerCapital} from '@/api/shop/shopDealerCapital' import {useDealerUser} from '@/hooks/useDealerUser' import type {ShopDealerCapital} from '@/api/shop/shopDealerCapital/model' import navTo from "@/utils/common"; const DealerCapital: React.FC = () => { const [loading, setLoading] = useState(false) const d = new Date() const currMonth = `${d.getFullYear()}${d.getMonth() + 1}`; const currDate = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`; const [date, setDate] = useState(currMonth) const [show1, setShow1] = useState(false) const [refreshing, setRefreshing] = useState(false) const [loadingMore, setLoadingMore] = useState(false) const [capital, setCapital] = useState([]) const [currentPage, setCurrentPage] = useState(1) const [hasMore, setHasMore] = useState(true) const {dealerUser} = useDealerUser() // 获取订单数据 const fetchCapital = useCallback(async (page: number = 1, isRefresh: boolean = false) => { // if (!dealerUser?.userId) return try { if (isRefresh) { setRefreshing(true) } else if (page === 1) { setLoading(true) } else { setLoadingMore(true) } const result = await pageShopDealerCapital({ page, limit: 10, month: date, userId: Taro.getStorageSync('UserId') }) if (result?.list) { const newCapital = result.list.map(item => ({ ...item, orderNo: item.orderNo })) if (page === 1) { setCapital(newCapital) } else { setCapital(prev => [...prev, ...newCapital]) } setHasMore(newCapital.length === 10) setCurrentPage(page) } } catch (error) { console.error('获取分销订单失败:', error) Taro.showToast({ title: '获取订单失败', icon: 'error' }) } finally { setLoading(false) setRefreshing(false) setLoadingMore(false) } }, [dealerUser?.userId]) // 下拉刷新 const handleRefresh = async () => { await fetchCapital(1, true) } // 加载更多 const handleLoadMore = async () => { if (!loadingMore && hasMore) { await fetchCapital(currentPage + 1) } } const getFlowType = (index?: number) => { if (index === 10) return '电费收益' if (index === 20) return '提现支出' if (index === 30) return '转账支出' if (index === 40) return '转账收入' return 'warning' } // 初始化加载数据 useEffect(() => { if (dealerUser?.userId) { fetchCapital(1) } }, [fetchCapital,date]) const renderCapitalItem = (item: ShopDealerCapital) => ( navTo(`/dealer/capital/detail?id=${item.id}`)}> {getFlowType(item.flowType)} ¥{Number(item.money).toFixed(2)} {item.orderNo && ( {item.orderNo} )} {item.createTime} 我的收益:{item.money} ) return ( {/*筛选工具条*/} setShow1(true)}>{date ? `${date}` : '请选择'} setShow1(true)}/> {/*账单列表*/} {loading && capital.length === 0 ? ( 加载中... ) : capital.length > 0 ? ( <> {capital.map(renderCapitalItem)} {loadingMore && ( 加载更多... )} {!hasMore && capital.length > 0 && ( 没有更多数据了 )} ) : ( )} setShow1(false)} onConfirm={(_, values) => { setShow1(false) setDate(`${values[0]}${values[1]}`) }} /> ) } export default DealerCapital