From c826da164cceff562d48ffc8c7be42a1b757f3c5 Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 25 Dec 2025 01:04:00 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E6=94=AF=E4=BB=98=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E5=90=8E=E8=B7=B3=E8=BD=AC=E5=88=B0=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=AD=BE=E7=BD=B2=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改认种支付成功后的流程: - 合同签署启用且已完成实名认证 → 跳转到合同签署页面 - 合同签署启用但未完成实名认证 → 弹窗提示去做实名认证 - 合同签署未启用 → 显示成功提示返回个人中心 符合设计流程: 支付(冻结) → 签合同 → 24小时内签署完成/超时取消 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../pages/planting_location_page.dart | 57 +++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/frontend/mobile-app/lib/features/planting/presentation/pages/planting_location_page.dart b/frontend/mobile-app/lib/features/planting/presentation/pages/planting_location_page.dart index f881282d..ba2f33f9 100644 --- a/frontend/mobile-app/lib/features/planting/presentation/pages/planting_location_page.dart +++ b/frontend/mobile-app/lib/features/planting/presentation/pages/planting_location_page.dart @@ -264,28 +264,53 @@ class _PlantingLocationPageState extends ConsumerState { // 3. 确认省市选择 await plantingService.confirmProvinceCity(widget.orderNo); - // 4. 支付订单 + // 4. 支付订单(此时资金已冻结) await plantingService.payOrder(widget.orderNo); if (mounted) { - // 显示成功提示 - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('认种成功!'), - backgroundColor: Color(0xFF4CAF50), - ), - ); + // 5. 检查合同签署配置 + final contractSigningService = ref.read(contractSigningServiceProvider); + final config = await contractSigningService.getConfig(); - // 5. 认种成功后,检查是否需要实名认证(仅在合同签署功能启用时) - final needsKyc = await _checkKycRequirement(); - if (needsKyc && mounted) { - // 显示实名认证提示弹窗 - final goToKyc = await KycRequiredDialog.show(context: context); - if (goToKyc == true && mounted) { - // 跳转到实名认证页面 - context.push(RoutePaths.kycEntry); + if (config.contractSigningEnabled) { + // 合同签署功能启用 - 检查是否需要先完成实名认证 + final needsKyc = await _checkKycRequirement(); + + if (needsKyc && mounted) { + // 未完成实名认证 - 显示提示弹窗 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('认种成功!请先完成实名认证后签署合同'), + backgroundColor: Color(0xFF4CAF50), + ), + ); + + final goToKyc = await KycRequiredDialog.show(context: context); + if (goToKyc == true && mounted) { + context.push(RoutePaths.kycEntry); + return; + } + } else if (mounted) { + // 已完成实名认证 - 直接跳转到合同签署页面 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('认种成功!请在24小时内完成合同签署'), + backgroundColor: Color(0xFF4CAF50), + ), + ); + + // 跳转到合同签署页面 + context.go('${RoutePaths.contractSigning}/${widget.orderNo}'); return; } + } else { + // 合同签署功能未启用 - 显示成功提示并返回 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('认种成功!'), + backgroundColor: Color(0xFF4CAF50), + ), + ); } // 返回到个人中心