diff --git a/lib/app/features/enterprise/domain/usecases/upload_enterprises_usecase.dart b/lib/app/features/enterprise/domain/usecases/upload_enterprises_usecase.dart index dabe59c..46ed307 100644 --- a/lib/app/features/enterprise/domain/usecases/upload_enterprises_usecase.dart +++ b/lib/app/features/enterprise/domain/usecases/upload_enterprises_usecase.dart @@ -32,6 +32,7 @@ class UploadEnterprisesUseCase { } /// 执行上传操作 + /// todo 正确的架构模式:请求-确认-更新 (Request-Acknowledge-Update) 需要更新本地的最后修改时间为服务器的返回数据 /// [onProgress] 是一个回调函数,用于将进度实时报告给调用者 (Controller) Future call({ required List enterprisesToUpload, diff --git a/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart b/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart index 326662c..edd5d18 100644 --- a/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart +++ b/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart @@ -87,13 +87,7 @@ class EnterpriseListController extends GetxController { isSyncing(false); // 步骤 3: 所有同步和冲突解决完毕后,从本地加载最终数据 - final result = await getEnterpriseListUsecase.call( - name: nameController.text, - type: selectedType.value?.displayText, - startDate: startDate.value, - endDate: endDate.value, - ); - enterpriseList.assignAll(result); + await loadEnterprises(); } catch (e) { Get.snackbar('错误', '操作失败: $e'); } finally { @@ -149,7 +143,25 @@ class EnterpriseListController extends GetxController { } void search() { - loadAndSyncEnterprises(); + loadEnterprises(); + } + + Future loadEnterprises() async { + expansibleController.collapse(); + isLoading.value = true; + try { + final result = await getEnterpriseListUsecase.call( + name: nameController.text, + type: selectedType.value?.displayText, + startDate: startDate.value, + endDate: endDate.value, + ); + enterpriseList.assignAll(result); + } catch (e) { + Get.snackbar('错误', '加载企业列表失败: $e'); + } finally { + isLoading.value = false; + } } void clearFilters() { @@ -157,7 +169,7 @@ class EnterpriseListController extends GetxController { selectedType.value = null; startDate.value = null; endDate.value = null; - loadAndSyncEnterprises(); + loadEnterprises(); } /// 导航到编辑表单页面 diff --git a/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart b/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart index 336645d..bd9a4cd 100644 --- a/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart +++ b/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart @@ -209,7 +209,7 @@ class EnterpriseListPage extends GetView { // 使用下拉刷新包裹列表 return RefreshIndicator( - onRefresh: () async => controller.search(), + onRefresh: () async => controller.loadAndSyncEnterprises(), child: ListView.builder( padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 8.h), itemCount: controller.enterpriseList.length,