From 941253dd7742d90c5af7dde77844ec65cfc4a815 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 24 Dec 2025 22:03:54 -0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E5=90=88?= =?UTF-8?q?=E5=90=8C=E7=AD=BE=E7=BD=B2=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后端返回格式为 {"success":true,"data":[]},前端错误地将 response.data 直接作为 List 解析,导致类型转换失败。 修复 getPendingTasks() 和 getUnsignedTasks() 方法,正确解析 responseData['data']。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../services/contract_signing_service.dart | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/frontend/mobile-app/lib/core/services/contract_signing_service.dart b/frontend/mobile-app/lib/core/services/contract_signing_service.dart index 1d729684..e3b0af7d 100644 --- a/frontend/mobile-app/lib/core/services/contract_signing_service.dart +++ b/frontend/mobile-app/lib/core/services/contract_signing_service.dart @@ -185,9 +185,13 @@ class ContractSigningService { final response = await _apiClient.get('/planting/contract-signing/pending'); if (response.statusCode == 200) { - final data = response.data as List; - debugPrint('[ContractSigningService] 待签署任务数量: ${data.length}'); - return data.map((e) => ContractSigningTask.fromJson(e)).toList(); + final responseData = response.data as Map; + if (responseData['success'] == true && responseData['data'] != null) { + final data = responseData['data'] as List; + debugPrint('[ContractSigningService] 待签署任务数量: ${data.length}'); + return data.map((e) => ContractSigningTask.fromJson(e)).toList(); + } + return []; } throw Exception('获取待签署任务失败: ${response.statusCode}'); @@ -205,9 +209,13 @@ class ContractSigningService { final response = await _apiClient.get('/planting/contract-signing/unsigned'); if (response.statusCode == 200) { - final data = response.data as List; - debugPrint('[ContractSigningService] 未签署任务数量: ${data.length}'); - return data.map((e) => ContractSigningTask.fromJson(e)).toList(); + final responseData = response.data as Map; + if (responseData['success'] == true && responseData['data'] != null) { + final data = responseData['data'] as List; + debugPrint('[ContractSigningService] 未签署任务数量: ${data.length}'); + return data.map((e) => ContractSigningTask.fromJson(e)).toList(); + } + return []; } throw Exception('获取未签署任务失败: ${response.statusCode}');