fix(mobile-app): 修复合同签署页面问题

- 修复 markScrollComplete/acknowledgeContract API 响应处理
  (后端返回 success:true 但无 data 时重新获取任务详情)
- 将合同签署页面的 USDT 改成绿积分

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-25 03:44:39 -08:00
parent c657fb5a19
commit 2607907bad
3 changed files with 34 additions and 20 deletions

View File

@ -268,15 +268,22 @@ class ContractSigningService {
if (response.statusCode == 200) {
final responseData = response.data as Map<String, dynamic>;
if (responseData['success'] == true && responseData['data'] != null) {
final data = responseData['data'] as Map<String, dynamic>;
debugPrint('[ContractSigningService] 滚动标记成功,任务状态: ${data['status']}');
return ContractSigningTask.fromJson(data);
}
//
if (responseData['orderNo'] != null) {
debugPrint('[ContractSigningService] 滚动标记成功(直接返回数据)');
return ContractSigningTask.fromJson(responseData);
if (responseData['success'] == true) {
debugPrint('[ContractSigningService] 滚动标记成功');
// data success + message
if (responseData['data'] != null) {
final data = responseData['data'] as Map<String, dynamic>;
debugPrint('[ContractSigningService] 返回任务数据,状态: ${data['status']}');
return ContractSigningTask.fromJson(data);
}
//
if (responseData['orderNo'] != null) {
debugPrint('[ContractSigningService] 滚动标记成功(直接返回数据)');
return ContractSigningTask.fromJson(responseData);
}
// data
debugPrint('[ContractSigningService] 重新获取任务详情');
return await getTask(orderNo);
}
throw Exception('标记滚动失败: ${responseData['message'] ?? '响应格式错误'}');
}
@ -304,15 +311,22 @@ class ContractSigningService {
if (response.statusCode == 200) {
final responseData = response.data as Map<String, dynamic>;
if (responseData['success'] == true && responseData['data'] != null) {
final data = responseData['data'] as Map<String, dynamic>;
debugPrint('[ContractSigningService] 确认法律效力成功,任务状态: ${data['status']}');
return ContractSigningTask.fromJson(data);
}
//
if (responseData['orderNo'] != null) {
debugPrint('[ContractSigningService] 确认法律效力成功(直接返回数据)');
return ContractSigningTask.fromJson(responseData);
if (responseData['success'] == true) {
debugPrint('[ContractSigningService] 确认法律效力成功');
// data success + message
if (responseData['data'] != null) {
final data = responseData['data'] as Map<String, dynamic>;
debugPrint('[ContractSigningService] 返回任务数据,状态: ${data['status']}');
return ContractSigningTask.fromJson(data);
}
//
if (responseData['orderNo'] != null) {
debugPrint('[ContractSigningService] 确认法律效力成功(直接返回数据)');
return ContractSigningTask.fromJson(responseData);
}
// data
debugPrint('[ContractSigningService] 重新获取任务详情');
return await getTask(orderNo);
}
throw Exception('确认法律效力失败: ${responseData['message'] ?? '响应格式错误'}');
}

View File

@ -761,7 +761,7 @@ class _ContractSigningPageState extends ConsumerState<ContractSigningPage> {
),
const SizedBox(height: 4),
Text(
'${_task!.treeCount} 棵榴莲树 · ${_task!.totalAmount.toStringAsFixed(2)} USDT',
'${_task!.treeCount} 棵榴莲树 · ${_task!.totalAmount.toStringAsFixed(2)} 绿积分',
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,

View File

@ -272,7 +272,7 @@ class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'金额: ${task.totalAmount.toStringAsFixed(2)} USDT',
'金额: ${task.totalAmount.toStringAsFixed(2)} 绿积分',
style: const TextStyle(
fontSize: 14,
color: Color(0xFFD4AF37),