fix(mobile-app): 修复待签署合同列表重复显示问题

之前同时调用 getPendingTasks 和 getUnsignedTasks 然后合并,
导致待签署的任务显示两次。现在只使用 getUnsignedTasks。

🤖 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:07:24 -08:00
parent cdd275479e
commit 299de2005a
1 changed files with 7 additions and 14 deletions

View File

@ -21,7 +21,6 @@ class PendingContractsPage extends ConsumerStatefulWidget {
} }
class _PendingContractsPageState extends ConsumerState<PendingContractsPage> { class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
List<ContractSigningTask> _pendingTasks = [];
List<ContractSigningTask> _unsignedTasks = []; List<ContractSigningTask> _unsignedTasks = [];
bool _isLoading = true; bool _isLoading = true;
String? _errorMessage; String? _errorMessage;
@ -41,20 +40,16 @@ class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
try { try {
final service = ref.read(contractSigningServiceProvider); final service = ref.read(contractSigningServiceProvider);
// //
final results = await Future.wait([ final tasks = await service.getUnsignedTasks();
service.getPendingTasks(),
service.getUnsignedTasks(),
]);
setState(() { setState(() {
_pendingTasks = results[0]; _unsignedTasks = tasks;
_unsignedTasks = results[1];
_isLoading = false; _isLoading = false;
}); });
// //
if (_pendingTasks.isEmpty && _unsignedTasks.isEmpty) { if (_unsignedTasks.isEmpty) {
if (mounted) { if (mounted) {
context.pop(true); context.pop(true);
} }
@ -182,9 +177,7 @@ class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
); );
} }
final allTasks = [..._pendingTasks, ..._unsignedTasks]; if (_unsignedTasks.isEmpty) {
if (allTasks.isEmpty) {
return const Center( return const Center(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -209,8 +202,8 @@ class _PendingContractsPageState extends ConsumerState<PendingContractsPage> {
color: const Color(0xFFD4AF37), color: const Color(0xFFD4AF37),
child: ListView.builder( child: ListView.builder(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
itemCount: allTasks.length, itemCount: _unsignedTasks.length,
itemBuilder: (context, index) => _buildTaskCard(allTasks[index]), itemBuilder: (context, index) => _buildTaskCard(_unsignedTasks[index]),
), ),
); );
} }