Browse Source

feat : 企业详情

dev
徐振升 2 months ago
parent
commit
be06866aaf
  1. 5
      lib/app/features/enterprise/presentation/bindings/enterprise_info_binding.dart
  2. 4
      lib/app/features/enterprise/presentation/controllers/enterprise_form_controller.dart
  3. 44
      lib/app/features/enterprise/presentation/controllers/enterprise_info_controller.dart
  4. 22
      lib/app/features/enterprise/presentation/pages/enterprise_info_page.dart
  5. 13
      lib/app/features/problem/presentation/controllers/problem_list_controller.dart
  6. 25
      lib/app/features/problem/presentation/pages/problem_list_page.dart

5
lib/app/features/enterprise/presentation/bindings/enterprise_info_binding.dart

@ -5,15 +5,12 @@ import 'package:problem_check_system/app/features/enterprise/presentation/contro
class EnterpriseInfoBinding extends Bindings { class EnterpriseInfoBinding extends Bindings {
@override @override
void dependencies() { void dependencies() {
// 2. null Controller
Get.lazyPut<EnterpriseFormController>(() => EnterpriseFormController()); Get.lazyPut<EnterpriseFormController>(() => EnterpriseFormController());
// 3. EnterpriseInfoController EnterpriseFormController
Get.lazyPut<EnterpriseInfoController>( Get.lazyPut<EnterpriseInfoController>(
() => EnterpriseInfoController( () => EnterpriseInfoController(
enterpriseFormController: Get.find<EnterpriseFormController>(), enterpriseFormController: Get.find<EnterpriseFormController>(),
problemListController: Get.find(),
), ),
); );
final problemListController = Get.find<EnterpriseFormController>();
problemListController.test();
} }
} }

4
lib/app/features/enterprise/presentation/controllers/enterprise_form_controller.dart

@ -178,8 +178,4 @@ class EnterpriseFormController extends GetxController {
hazardSourceController.dispose(); hazardSourceController.dispose();
super.onClose(); super.onClose();
} }
void test() {
Get.log('EnterpriseFormController test method called');
}
} }

44
lib/app/features/enterprise/presentation/controllers/enterprise_info_controller.dart

@ -1,14 +1,54 @@
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:problem_check_system/app/features/enterprise/domain/entities/enterprise.dart';
import 'package:problem_check_system/app/features/enterprise/presentation/controllers/enterprise_form_controller.dart'; import 'package:problem_check_system/app/features/enterprise/presentation/controllers/enterprise_form_controller.dart';
import 'package:problem_check_system/app/features/problem/presentation/controllers/problem_list_controller.dart';
class EnterpriseInfoController extends GetxController { class EnterpriseInfoController extends GetxController {
EnterpriseInfoController({required this.enterpriseFormController}); EnterpriseInfoController({
required this.enterpriseFormController,
required this.problemListController,
});
final EnterpriseFormController enterpriseFormController; final EnterpriseFormController enterpriseFormController;
final ProblemListController problemListController;
final String tab1 = '问题列表';
final String tab2 = '企业基本情况';
Enterprise? _initialEnterprise;
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
Get.log('EnterpriseInfoController initialized'); // onInit UI更新
//
if (Get.arguments is Map) {
final arguments = Get.arguments as Map;
if (arguments.containsKey('data')) {
_initialEnterprise = arguments['data'] as Enterprise;
}
}
Get.log('EnterpriseInfoController Initialized.');
}
@override
void onReady() {
super.onReady();
// onReady
if (_initialEnterprise != null) {
// isLoading
problemListController.setFilters(_initialEnterprise!);
}
Get.log('EnterpriseInfoPage is ready. Loading initial data.');
}
void navigateToAddForm() {
problemListController.navigateToAddForm();
}
@override
void onClose() {
problemListController.clearFilters();
super.onClose();
} }
} }

22
lib/app/features/enterprise/presentation/pages/enterprise_info_page.dart

@ -65,23 +65,25 @@ class EnterpriseInfoPage extends GetView<EnterpriseInfoController> {
indicatorPadding: EdgeInsetsGeometry.only(bottom: 4.h), // ), indicatorPadding: EdgeInsetsGeometry.only(bottom: 4.h), // ),
indicatorSize: TabBarIndicatorSize.label, // indicatorSize: TabBarIndicatorSize.label, //
dividerHeight: 0, // TabBar 线 dividerHeight: 0, // TabBar 线
tabs: const [ tabs: [
Tab(text: '问题列表'), Tab(text: controller.tab1),
Tab(text: '企业基本情况'), Tab(text: controller.tab2),
], ],
), ),
centerTitle: false, centerTitle: true,
titleSpacing: 0, // titleSpacing: 0,
// --- --- // --- ---
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.add, color: Colors.white), // 使 .sp icon: Icon(Icons.add, color: Colors.white), // 使 .sp
onPressed: () {}, onPressed: () {
), controller.navigateToAddForm();
IconButton( },
icon: Icon(Icons.upload, color: Colors.pink[300]), // 使 .sp
onPressed: () {},
), ),
// IconButton(
// icon: Icon(Icons.upload, color: Colors.pink[300]), // 使 .sp
// onPressed: () {},
// ),
], ],
); );
} }

13
lib/app/features/problem/presentation/controllers/problem_list_controller.dart

@ -34,8 +34,8 @@ class ProblemListController extends GetxController {
final isSyncing = false.obs; final isSyncing = false.obs;
// AppBar // AppBar
final showAppBar = true; final showAppBar = true.obs;
final showFilterSection = true; final showFilterSection = true.obs;
final enterpriseList = <Enterprise>[].obs; final enterpriseList = <Enterprise>[].obs;
// //
@ -200,7 +200,7 @@ class ProblemListController extends GetxController {
Future<void> loadProblemItems() async { Future<void> loadProblemItems() async {
expansibleController.collapse(); expansibleController.collapse();
isLoading.value = true; isLoading(true);
try { try {
final ProblemFilterParams params = ProblemFilterParams( final ProblemFilterParams params = ProblemFilterParams(
enterpriseId: selectedEnterprise.value?.id, enterpriseId: selectedEnterprise.value?.id,
@ -214,21 +214,26 @@ class ProblemListController extends GetxController {
} catch (e) { } catch (e) {
Get.snackbar('错误', '加载问题列表失败: $e'); Get.snackbar('错误', '加载问题列表失败: $e');
} finally { } finally {
isLoading.value = false; isLoading(false);
} }
} }
// //
void setFilters(Enterprise enterprise) { void setFilters(Enterprise enterprise) {
showAppBar.value = false;
showFilterSection.value = false;
selectedEnterprise.value = enterprise; selectedEnterprise.value = enterprise;
selectedBound.value = null; selectedBound.value = null;
selectedStatus.value = null; selectedStatus.value = null;
startDate.value = null; startDate.value = null;
endDate.value = null; endDate.value = null;
loadProblemItems();
} }
// //
void clearFilters() { void clearFilters() {
showAppBar.value = true;
showFilterSection.value = true;
selectedEnterprise.value = null; selectedEnterprise.value = null;
selectedBound.value = null; selectedBound.value = null;
selectedStatus.value = null; selectedStatus.value = null;

25
lib/app/features/problem/presentation/pages/problem_list_page.dart

@ -15,17 +15,26 @@ class ProblemListPage extends GetView<ProblemListController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: controller.showAppBar appBar: PreferredSize(
? CustomAppBar( preferredSize: const Size.fromHeight(kToolbarHeight),
titleName: '问题列表', child: Obx(
actionsVisible: true, () => controller.showAppBar.value
onAddPressed: () => controller.navigateToAddForm(), ? CustomAppBar(
) titleName: '问题列表',
: null, actionsVisible: true,
onAddPressed: () => controller.navigateToAddForm(),
)
: const SizedBox.shrink(),
),
),
body: Column( body: Column(
children: [ children: [
// //
if (controller.showFilterSection) _buildFilterSection(), Obx(
() => controller.showFilterSection.value
? _buildFilterSection()
: const SizedBox.shrink(),
),
const Divider(height: 1, thickness: 1), const Divider(height: 1, thickness: 1),
// //

Loading…
Cancel
Save