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 75cbeb6..705a788 100644 --- a/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart +++ b/lib/app/features/enterprise/presentation/controllers/enterprise_list_controller.dart @@ -33,7 +33,8 @@ class EnterpriseListController extends GetxController { final selectedType = Rx(null); final startDate = Rx(null); final endDate = Rx(null); - final selectedEnterprises = {}.obs; // 在此页面,此 Set 通常为空 + final selectedEnterprises = {}.obs; + final ExpansibleController expansibleController = ExpansibleController(); @override void onInit() { @@ -41,6 +42,13 @@ class EnterpriseListController extends GetxController { fetchEnterprises(); // 页面初始化时加载数据 } + @override + void onClose() { + nameController.dispose(); + expansibleController.dispose(); + super.onClose(); + } + // --- 实现基类中定义的方法 --- void search() { @@ -55,15 +63,11 @@ class EnterpriseListController extends GetxController { fetchEnterprises(); } - void onSelectionChanged(Enterprise enterprise) { - // 管理模式下没有选择功能,所以此方法体为空。 - // 这是符合接口隔离原则的正常现象。 - } - // --- EnterpriseListController 特有的方法 --- /// 核心方法:获取企业列表 Future fetchEnterprises() async { + expansibleController.collapse(); isLoading.value = true; try { final result = await getEnterpriseListUsecase.call( @@ -125,10 +129,4 @@ class EnterpriseListController extends GetxController { arguments: {'data': enterprise, 'mode': FormMode.view}, ); } - - @override - void onClose() { - nameController.dispose(); - super.onClose(); - } } 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 91f740b..336645d 100644 --- a/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart +++ b/lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart @@ -22,7 +22,7 @@ class EnterpriseListPage extends GetView { children: [ // 根据参数决定是否构建筛选区域 _buildFilterSection(), - const Divider(height: 1, thickness: .1), + const Divider(height: 1, thickness: 1), // 列表区域总是显示 Expanded(child: _buildEnterpriseList()), @@ -36,9 +36,15 @@ class EnterpriseListPage extends GetView { /// 因此它无需关心具体的控制器是哪个。 Widget _buildFilterSection() { return ExpansionTile( + controller: controller.expansibleController, title: const Text('筛选查询'), leading: const Icon(Icons.filter_alt_outlined), - initiallyExpanded: false, // 默认收起 + tilePadding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 0.0.h), + childrenPadding: EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8.0.h, + ).copyWith(top: 0), + dense: true, children: [ Padding( padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 4.h),