feat(dealer): 新增资金明细页面及功能

- 在 dealer/capital 路由配置中添加 detail 子路由
- 创建资金明细详情页组件 /dealer/capital/detail.tsx
- 实现资金流水列表展示,支持下拉刷新和上拉加载更多
- 添加日期筛选功能,允许按年月查看资金记录
-优化资金类型显示逻辑,区分电费收益、提现支出等不同类型
- 修改资金明细接口字段,将 describe 字段改为 comments
- 调整页面布局样式,适配移动端显示效果
-为资金明细项添加点击跳转至详情页的功能- 更新订单页面日期选择器交互方式和位置- 统一页面标题和导航栏文案为“详情”
This commit is contained in:
2025-10-13 21:04:55 +08:00
parent cb69033b7e
commit 545fb393ea
6 changed files with 285 additions and 95 deletions

View File

@@ -12,10 +12,11 @@ interface OrderWithDetails extends ShopDealerOrder {
userCommission?: string
}
const DealerOrders: React.FC = () => {
const DealerOrder: React.FC = () => {
const [loading, setLoading] = useState<boolean>(false)
const d = new Date()
const currDay = `${d.getFullYear()}${d.getMonth() + 1}`
const currDay = `${d.getFullYear()}${d.getMonth() + 1}`;
const currDate = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;
const [date, setDate] = useState(currDay)
const [show1, setShow1] = useState(false)
const [refreshing, setRefreshing] = useState<boolean>(false)
@@ -76,7 +77,7 @@ const DealerOrders: React.FC = () => {
setRefreshing(false)
setLoadingMore(false)
}
}, [dealerUser?.userId])
}, [dealerUser?.userId, date])
// 下拉刷新
const handleRefresh = async () => {
@@ -95,7 +96,7 @@ const DealerOrders: React.FC = () => {
if (dealerUser?.userId) {
fetchOrders(1)
}
}, [fetchOrders])
}, [fetchOrders, date])
const getStatusText = (isSettled?: number, isInvalid?: number) => {
if (isInvalid === 1) return '未签约'
@@ -161,6 +162,13 @@ const DealerOrders: React.FC = () => {
return (
<View className="min-h-screen bg-gray-50">
<Cell.Group divider={false}>
<Cell
description={date ? `${date}` : '请选择'}
extra={'选择月份'}
onClick={() => setShow1(true)}
/>
</Cell.Group>
<PullToRefresh
onRefresh={handleRefresh}
disabled={refreshing}
@@ -169,34 +177,15 @@ const DealerOrders: React.FC = () => {
refreshingText="刷新中..."
completeText="刷新完成"
>
<Cell
description={date ? `${date}` : '请选择'}
extra={'选择月份'}
onClick={() => setShow1(true)}
/>
<DatePicker
title="日期选择"
visible={show1}
pickerProps={{
popupProps: {zIndex: 1220},
}}
type={'year-month'}
defaultValue={new Date(`${date}`)}
showChinese
onCancel={() => setShow1(false)}
onConfirm={(_, values) => {
setShow1(false)
setDate(`${values[0]}${values[1]}`)
fetchOrders(1).then()
}}
/>
<ScrollView
scrollY
className="h-screen"
style={{
height: 'calc(100vh - 100px)',
}}
onScrollToLower={handleLoadMore}
lowerThreshold={50}
>
<View className="p-4">
<View className="px-4">
{loading && orders.length === 0 ? (
<View className="text-center py-8">
<Loading/>
@@ -225,8 +214,23 @@ const DealerOrders: React.FC = () => {
</View>
</ScrollView>
</PullToRefresh>
<DatePicker
title="日期选择"
visible={show1}
pickerProps={{
popupProps: {zIndex: 1220},
}}
type={'year-month'}
defaultValue={new Date(`${currDate}`)}
showChinese
onCancel={() => setShow1(false)}
onConfirm={(_, values) => {
setShow1(false)
setDate(`${values[0]}${values[1]}`)
}}
/>
</View>
)
}
export default DealerOrders
export default DealerOrder