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:
parent
c657fb5a19
commit
2607907bad
|
|
@ -268,15 +268,22 @@ class ContractSigningService {
|
||||||
|
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
final responseData = response.data as Map<String, dynamic>;
|
final responseData = response.data as Map<String, dynamic>;
|
||||||
if (responseData['success'] == true && responseData['data'] != null) {
|
if (responseData['success'] == true) {
|
||||||
final data = responseData['data'] as Map<String, dynamic>;
|
debugPrint('[ContractSigningService] 滚动标记成功');
|
||||||
debugPrint('[ContractSigningService] 滚动标记成功,任务状态: ${data['status']}');
|
// 后端可能返回 data,也可能只返回 success + message
|
||||||
return ContractSigningTask.fromJson(data);
|
if (responseData['data'] != null) {
|
||||||
}
|
final data = responseData['data'] as Map<String, dynamic>;
|
||||||
// 兼容直接返回任务数据的情况
|
debugPrint('[ContractSigningService] 返回任务数据,状态: ${data['status']}');
|
||||||
if (responseData['orderNo'] != null) {
|
return ContractSigningTask.fromJson(data);
|
||||||
debugPrint('[ContractSigningService] 滚动标记成功(直接返回数据)');
|
}
|
||||||
return ContractSigningTask.fromJson(responseData);
|
// 兼容直接返回任务数据的情况
|
||||||
|
if (responseData['orderNo'] != null) {
|
||||||
|
debugPrint('[ContractSigningService] 滚动标记成功(直接返回数据)');
|
||||||
|
return ContractSigningTask.fromJson(responseData);
|
||||||
|
}
|
||||||
|
// 如果没有返回 data,重新获取任务详情
|
||||||
|
debugPrint('[ContractSigningService] 重新获取任务详情');
|
||||||
|
return await getTask(orderNo);
|
||||||
}
|
}
|
||||||
throw Exception('标记滚动失败: ${responseData['message'] ?? '响应格式错误'}');
|
throw Exception('标记滚动失败: ${responseData['message'] ?? '响应格式错误'}');
|
||||||
}
|
}
|
||||||
|
|
@ -304,15 +311,22 @@ class ContractSigningService {
|
||||||
|
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
final responseData = response.data as Map<String, dynamic>;
|
final responseData = response.data as Map<String, dynamic>;
|
||||||
if (responseData['success'] == true && responseData['data'] != null) {
|
if (responseData['success'] == true) {
|
||||||
final data = responseData['data'] as Map<String, dynamic>;
|
debugPrint('[ContractSigningService] 确认法律效力成功');
|
||||||
debugPrint('[ContractSigningService] 确认法律效力成功,任务状态: ${data['status']}');
|
// 后端可能返回 data,也可能只返回 success + message
|
||||||
return ContractSigningTask.fromJson(data);
|
if (responseData['data'] != null) {
|
||||||
}
|
final data = responseData['data'] as Map<String, dynamic>;
|
||||||
// 兼容直接返回任务数据的情况
|
debugPrint('[ContractSigningService] 返回任务数据,状态: ${data['status']}');
|
||||||
if (responseData['orderNo'] != null) {
|
return ContractSigningTask.fromJson(data);
|
||||||
debugPrint('[ContractSigningService] 确认法律效力成功(直接返回数据)');
|
}
|
||||||
return ContractSigningTask.fromJson(responseData);
|
// 兼容直接返回任务数据的情况
|
||||||
|
if (responseData['orderNo'] != null) {
|
||||||
|
debugPrint('[ContractSigningService] 确认法律效力成功(直接返回数据)');
|
||||||
|
return ContractSigningTask.fromJson(responseData);
|
||||||
|
}
|
||||||
|
// 如果没有返回 data,重新获取任务详情
|
||||||
|
debugPrint('[ContractSigningService] 重新获取任务详情');
|
||||||
|
return await getTask(orderNo);
|
||||||
}
|
}
|
||||||
throw Exception('确认法律效力失败: ${responseData['message'] ?? '响应格式错误'}');
|
throw Exception('确认法律效力失败: ${responseData['message'] ?? '响应格式错误'}');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -761,7 +761,7 @@ class _ContractSigningPageState extends ConsumerState<ContractSigningPage> {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
'${_task!.treeCount} 棵榴莲树 · ${_task!.totalAmount.toStringAsFixed(2)} USDT',
|
'${_task!.treeCount} 棵榴莲树 · ${_task!.totalAmount.toStringAsFixed(2)} 绿积分',
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,7 @@ class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'金额: ${task.totalAmount.toStringAsFixed(2)} USDT',
|
'金额: ${task.totalAmount.toStringAsFixed(2)} 绿积分',
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: Color(0xFFD4AF37),
|
color: Color(0xFFD4AF37),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue