From 6fbe339507bdade91c6555c8f0a8e9e3f3057d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Mon, 13 Oct 2025 22:57:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(dealer):=20=E6=9B=B4=E6=96=B0=E5=88=86?= =?UTF-8?q?=E9=94=80=E5=95=86=E8=B5=84=E9=87=91=E6=98=8E=E7=BB=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构资金明细页面,从列表模式改为详情模式 - 修改API模型字段,将orderId改为orderNo - 移除下拉刷新和滚动加载功能- 添加路由参数支持,通过id获取具体资金记录-优化UI展示,突出金额和关键信息 - 更新相关页面引用和导出名称 --- src/api/shop/shopDealerCapital/model/index.ts | 5 +- src/api/shop/shopDealerOrder/model/index.ts | 4 +- src/dealer/capital/detail.tsx | 200 +++++------------- src/dealer/capital/index.tsx | 43 ++-- src/dealer/orders/index.tsx | 25 ++- 5 files changed, 90 insertions(+), 187 deletions(-) diff --git a/src/api/shop/shopDealerCapital/model/index.ts b/src/api/shop/shopDealerCapital/model/index.ts index f2155b8..4117083 100644 --- a/src/api/shop/shopDealerCapital/model/index.ts +++ b/src/api/shop/shopDealerCapital/model/index.ts @@ -8,8 +8,8 @@ export interface ShopDealerCapital { id?: number; // 分销商用户ID userId?: number; - // 订单ID - orderId?: number; + // 订单编号 + orderNo?: string; // 资金流动类型 (10佣金收入 20提现支出 30转账支出 40转账收入) flowType?: number; // 金额 @@ -31,5 +31,6 @@ export interface ShopDealerCapital { */ export interface ShopDealerCapitalParam extends PageParam { id?: number; + orderNo?: string; keywords?: string; } diff --git a/src/api/shop/shopDealerOrder/model/index.ts b/src/api/shop/shopDealerOrder/model/index.ts index ac906d8..0be25d5 100644 --- a/src/api/shop/shopDealerOrder/model/index.ts +++ b/src/api/shop/shopDealerOrder/model/index.ts @@ -8,8 +8,8 @@ export interface ShopDealerOrder { id?: number; // 买家用户ID userId?: number; - // 订单ID - orderId?: number; + // 订单编号 + orderNo?: string; // 订单总金额(不含运费) orderPrice?: string; // 分销商用户id(一级) diff --git a/src/dealer/capital/detail.tsx b/src/dealer/capital/detail.tsx index 53654ab..04dbda2 100644 --- a/src/dealer/capital/detail.tsx +++ b/src/dealer/capital/detail.tsx @@ -1,78 +1,19 @@ -import React, {useState, useEffect, useCallback} from 'react' -import {View, Text, ScrollView} from '@tarojs/components' -import {Empty, PullToRefresh, Loading} from '@nutui/nutui-react-taro' -import Taro from '@tarojs/taro' -import {pageShopDealerCapital} from '@/api/shop/shopDealerCapital' -import {useDealerUser} from '@/hooks/useDealerUser' +import {useState, useEffect} from 'react' +import {View, Text} from '@tarojs/components' +import {Empty, Loading} from '@nutui/nutui-react-taro' +import {useRouter} from '@tarojs/taro' +import {getShopDealerCapital} from '@/api/shop/shopDealerCapital' import type {ShopDealerCapital} from '@/api/shop/shopDealerCapital/model' -const DealerCapital: React.FC = () => { +const DealerCapitalDetail = () => { + const {params} = useRouter(); const [loading, setLoading] = 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 [item, setItem] = useState() // 获取订单数据 - 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 - }) - - if (result?.list) { - const newCapital = result.list.map(item => ({ - ...item, - orderId: item.orderId - })) - - 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 reload = async () => { + const data = await getShopDealerCapital(Number(params.id)) + setItem(data) } const getFlowType = (index?: number) => { @@ -85,90 +26,51 @@ const DealerCapital: React.FC = () => { // 初始化加载数据 useEffect(() => { - if (dealerUser?.userId) { - fetchCapital(1) - } - }, [fetchCapital]) - - const renderCapitalItem = (item: ShopDealerCapital) => ( - - - - {getFlowType(item.flowType)} - - - ¥{Number(item.money).toFixed(2)} - - - - {item.comments && ( - - - {item.comments} - - - )} - - - 订单号:{item.orderId} - - - - - {item.createTime} - - - - - ) + reload().then(() => { + setLoading(true) + }) + }, []) return ( - - - - {loading && capital.length === 0 ? ( - - - 加载中... - - ) : capital.length > 0 ? ( - <> - {capital.map(renderCapitalItem)} - {loadingMore && ( - - - 加载更多... - - )} - {!hasMore && capital.length > 0 && ( - - 没有更多数据了 - - )} - - ) : ( - - )} + + {loading && !item ? ( + + + 加载中... - - + ) : item ? ( + + + + {getFlowType(item.flowType)} + + + + {Number(item.money).toFixed(2)} + + + + + + 订单编号:{item.orderNo} + + + 收益描述:{item.comments} + + + 创建时间:{item.createTime} + + + + ) : ( + + )} + ) } -export default DealerCapital +export default DealerCapitalDetail diff --git a/src/dealer/capital/index.tsx b/src/dealer/capital/index.tsx index 4b13f9c..41f5407 100644 --- a/src/dealer/capital/index.tsx +++ b/src/dealer/capital/index.tsx @@ -1,6 +1,7 @@ import React, {useState, useEffect, useCallback} from 'react' import {View, Text, ScrollView} from '@tarojs/components' -import {Empty, PullToRefresh, Cell, DatePicker, Loading} from '@nutui/nutui-react-taro' +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' @@ -42,7 +43,7 @@ const DealerCapital: React.FC = () => { if (result?.list) { const newCapital = result.list.map(item => ({ ...item, - orderId: item.orderId + orderNo: item.orderNo })) if (page === 1) { @@ -96,7 +97,8 @@ const DealerCapital: React.FC = () => { }, [fetchCapital]) const renderCapitalItem = (item: ShopDealerCapital) => ( - navTo(`/dealer/capital/detail?id=${item.id}`)}> + navTo(`/dealer/capital/detail?id=${item.id}`)}> {getFlowType(item.flowType)} @@ -106,13 +108,14 @@ const DealerCapital: React.FC = () => { - {/*{item.comments && (*/} - {/* */} - {/* */} - {/* {item.comments}*/} - {/* */} - {/* */} - {/*)}*/} + {item.comments && ( + + + {item.comments} + + + )} + {item.createTime} @@ -127,13 +130,6 @@ const DealerCapital: React.FC = () => { return ( - - setShow1(true)} - /> - { > + {/*筛选工具条*/} + + setShow1(true)}>{date ? `${date}` : '请选择'} + setShow1(true)}/> + + {/*账单列表*/} {loading && capital.length === 0 ? ( @@ -185,7 +187,6 @@ const DealerCapital: React.FC = () => { pickerProps={{ popupProps: {zIndex: 1220}, }} - type={'year-month'} defaultValue={new Date(`${currDate}`)} showChinese onCancel={() => setShow1(false)} diff --git a/src/dealer/orders/index.tsx b/src/dealer/orders/index.tsx index 796ef75..9c72a25 100644 --- a/src/dealer/orders/index.tsx +++ b/src/dealer/orders/index.tsx @@ -1,6 +1,7 @@ import React, {useState, useEffect, useCallback} from 'react' import {View, Text, ScrollView} from '@tarojs/components' -import {Empty, PullToRefresh, Loading, Cell, DatePicker} from '@nutui/nutui-react-taro' +import {Empty, PullToRefresh,Space, Loading, DatePicker} from '@nutui/nutui-react-taro' +import {ArrowDown} from '@nutui/icons-react-taro' import Taro from '@tarojs/taro' import {pageShopDealerOrder} from '@/api/shop/shopDealerOrder' import {useDealerUser} from '@/hooks/useDealerUser' @@ -51,7 +52,7 @@ const DealerOrder: React.FC = () => { if (result?.list) { const newOrders = result.list.map(order => ({ ...order, - orderNo: `${order.orderId}`, + orderNo: `${order.orderNo}`, customerName: `用户${order.userId}`, userCommission: order.firstMoney || '0.00' })) @@ -114,7 +115,7 @@ const DealerOrder: React.FC = () => { - 订单号:{order.id} + 订单号:{order.orderNo} @@ -162,13 +163,6 @@ const DealerOrder: React.FC = () => { return ( - - setShow1(true)} - /> - { > + {/*筛选工具条*/} + + setShow1(true)}>{date ? `${date}` : '请选择'} + setShow1(true)}/> + + {/*账单列表*/} {loading && orders.length === 0 ? (