From f9835c388eab2774c84db57329da532d7bb3631f Mon Sep 17 00:00:00 2001 From: hailin Date: Sat, 31 Jan 2026 21:02:04 -0800 Subject: [PATCH] =?UTF-8?q?fix(c2c):=20=E6=88=91=E7=9A=84=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=98=BE=E7=A4=BA=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E8=A7=86=E8=A7=92=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. "我的"列表根据用户是maker/taker判断实际角色, 接买单(taker)时显示"卖出"而非"买入" 2. 订单详情 provider 改为 autoDispose,每次进入详情页 都从API获取最新数据,避免显示旧的数量和状态 Co-Authored-By: Claude Opus 4.5 --- .../pages/c2c/c2c_market_page.dart | 20 ++++++++++++------- .../presentation/providers/c2c_providers.dart | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/frontend/mining-app/lib/presentation/pages/c2c/c2c_market_page.dart b/frontend/mining-app/lib/presentation/pages/c2c/c2c_market_page.dart index c0578243..01fe64b8 100644 --- a/frontend/mining-app/lib/presentation/pages/c2c/c2c_market_page.dart +++ b/frontend/mining-app/lib/presentation/pages/c2c/c2c_market_page.dart @@ -100,7 +100,7 @@ class _C2cMarketPageState extends ConsumerState children: [ _buildOrderList(context, 'SELL'), // 购买页面显示卖单 _buildOrderList(context, 'BUY'), // 出售页面显示买单 - _buildMyOrderList(context), + _buildMyOrderList(context, accountSequence), ], ), ), @@ -233,7 +233,7 @@ class _C2cMarketPageState extends ConsumerState ); } - Widget _buildMyOrderList(BuildContext context) { + Widget _buildMyOrderList(BuildContext context, String accountSequence) { final ordersAsync = ref.watch(myC2cOrdersProvider); return ordersAsync.when( @@ -277,7 +277,7 @@ class _C2cMarketPageState extends ConsumerState itemCount: orders.length, itemBuilder: (context, index) { final order = orders[index]; - return _buildMyOrderCard(context, order); + return _buildMyOrderCard(context, order, accountSequence); }, ), ); @@ -439,8 +439,14 @@ class _C2cMarketPageState extends ConsumerState ); } - Widget _buildMyOrderCard(BuildContext context, C2cOrderModel order) { + Widget _buildMyOrderCard(BuildContext context, C2cOrderModel order, String accountSequence) { final isDark = AppColors.isDark(context); + // 判断当前用户在这笔订单中的角色(买方/卖方) + // maker 创建订单: BUY→maker是买方, SELL→maker是卖方 + // taker 接单: BUY→taker是卖方, SELL→taker是买方 + final isMaker = order.makerAccountSequence == accountSequence; + final isUserBuying = (isMaker && order.isBuy) || (!isMaker && order.isSell); + return GestureDetector( onTap: () => context.push(Routes.c2cOrderDetail, extra: order.orderNo), child: Container( @@ -462,15 +468,15 @@ class _C2cMarketPageState extends ConsumerState Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( - color: (order.isBuy ? _green : _red).withOpacity(isDark ? 0.2 : 0.1), + color: (isUserBuying ? _green : _red).withOpacity(isDark ? 0.2 : 0.1), borderRadius: BorderRadius.circular(4), ), child: Text( - order.typeText, + isUserBuying ? '买入' : '卖出', style: TextStyle( fontSize: 12, fontWeight: FontWeight.bold, - color: order.isBuy ? _green : _red, + color: isUserBuying ? _green : _red, ), ), ), diff --git a/frontend/mining-app/lib/presentation/providers/c2c_providers.dart b/frontend/mining-app/lib/presentation/providers/c2c_providers.dart index 8ae36ddb..018e157e 100644 --- a/frontend/mining-app/lib/presentation/providers/c2c_providers.dart +++ b/frontend/mining-app/lib/presentation/providers/c2c_providers.dart @@ -36,8 +36,8 @@ final myC2cOrdersProvider = FutureProvider( }, ); -/// C2C订单详情 Provider -final c2cOrderDetailProvider = FutureProvider.family( +/// C2C订单详情 Provider(autoDispose: 每次进入详情页都获取最新数据) +final c2cOrderDetailProvider = FutureProvider.autoDispose.family( (ref, orderNo) async { final dataSource = getIt(); return dataSource.getC2cOrderDetail(orderNo);