From 2a85fcc7fa427f95a750df4c8c8a0e68ff7e2a2c Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 25 Dec 2025 01:08:27 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E4=BF=AE=E5=A4=8D=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E9=A1=BA=E5=BA=8F=E9=81=BF=E5=85=8D=20pending=20?= =?UTF-8?q?=E8=A2=AB=E5=BD=93=E6=88=90=20orderNo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 /contract-signing/pending 路由放在 /contract-signing/:orderNo 前面, 避免 GoRouter 将 "pending" 匹配为动态参数。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../mobile-app/lib/routes/app_router.dart | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/mobile-app/lib/routes/app_router.dart b/frontend/mobile-app/lib/routes/app_router.dart index 2c900bec..65d179a9 100644 --- a/frontend/mobile-app/lib/routes/app_router.dart +++ b/frontend/mobile-app/lib/routes/app_router.dart @@ -406,6 +406,17 @@ final appRouterProvider = Provider((ref) { builder: (context, state) => const ChangePhonePage(), ), + // Pending Contracts Page (待签署合同列表) + // 注意:必须放在 contractSigning/:orderNo 前面,否则 "pending" 会被当成 orderNo + GoRoute( + path: RoutePaths.pendingContracts, + name: RouteNames.pendingContracts, + builder: (context, state) { + final forceSign = state.extra as bool? ?? false; + return PendingContractsPage(forceSign: forceSign); + }, + ), + // Contract Signing Page (合同签署) GoRoute( path: '${RoutePaths.contractSigning}/:orderNo', @@ -416,16 +427,6 @@ final appRouterProvider = Provider((ref) { }, ), - // Pending Contracts Page (待签署合同列表) - GoRoute( - path: RoutePaths.pendingContracts, - name: RouteNames.pendingContracts, - builder: (context, state) { - final forceSign = state.extra as bool? ?? false; - return PendingContractsPage(forceSign: forceSign); - }, - ), - // Main Shell with Bottom Navigation ShellRoute( navigatorKey: _shellNavigatorKey,