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);