Browse Source

0015908: 【健康检测】新建档案下的手动建档和扫查建档选中,没有选中样式

finlay 1 year ago
parent
commit
89930d1848

+ 8 - 8
lib/components/side_nav/controller.dart

@@ -2,27 +2,27 @@ import 'package:fis_common/event/event_type.dart';
 import 'package:flutter/material.dart';
 
 class VSideNavViewController {
-  String? _currentRoute;
+  String? _currentTitle;
 
-  /// 当前路由
-  String? get currentRoute => _currentRoute;
+  /// 当前title
+  String? get currentTitle => _currentTitle;
 
   /// 路由变更事件
-  final routeChangedEvent = FEventHandler<String?>();
+  final titleChangedEvent = FEventHandler<String?>();
 
   /// 页面变更事件
   final pageChangedEvent = FEventHandler<WidgetBuilder?>();
 
   VSideNavViewController() {
-    routeChangedEvent.addListener(_onRouteChanged);
+    titleChangedEvent.addListener(_onTitleChanged);
   }
 
   /// 释放资源
   void dispose() {
-    routeChangedEvent.removeListener(_onRouteChanged);
+    titleChangedEvent.removeListener(_onTitleChanged);
   }
 
-  void _onRouteChanged(_, String? e) {
-    _currentRoute = e;
+  void _onTitleChanged(_, String? e) {
+    _currentTitle = e;
   }
 }

+ 3 - 3
lib/components/side_nav/nav_view.dart

@@ -56,7 +56,7 @@ class _NavViewState extends State<_NavView> {
   Widget _buildNavigator(BuildContext context) {
     return Navigator(
       key: Get.nestedKey(widget.navId),
-      initialRoute: widget.controller.currentRoute,
+      initialRoute: widget.controller.currentTitle,
       onGenerateRoute: onGenerateRoute,
     );
   }
@@ -71,12 +71,12 @@ class _NavViewState extends State<_NavView> {
     String? name = settings.name;
     if (name == null) return null;
 
-    final item = widget.items.firstWhereOrNull((e) => e.route?.name == name);
+    final item = widget.items.firstWhereOrNull((e) => e.title == name);
     if (item == null) return null;
 
     final route = item.route!;
 
-    widget.controller.routeChangedEvent.emit(this, route.name);
+    widget.controller.titleChangedEvent.emit(this, item.title);
 
     return GetPageRoute(
       page: route.page,

+ 5 - 5
lib/components/side_nav/side_bar.dart

@@ -26,7 +26,7 @@ class _SideBarState extends State<_SideBar> {
   void initState() {
     WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
       if (mounted) {
-        widget.controller.routeChangedEvent.addListener(_onRouteChanged);
+        widget.controller.titleChangedEvent.addListener(_onTitleChanged);
       }
     });
     super.initState();
@@ -34,7 +34,7 @@ class _SideBarState extends State<_SideBar> {
 
   @override
   void dispose() {
-    widget.controller.routeChangedEvent.removeListener(_onRouteChanged);
+    widget.controller.titleChangedEvent.removeListener(_onTitleChanged);
     super.dispose();
   }
 
@@ -79,8 +79,7 @@ class _SideBarState extends State<_SideBar> {
   }
 
   Widget _buildMenuCell(VSideNavMenuItem item) {
-    final hasSection = item.route != null &&
-        item.route!.name == widget.controller.currentRoute;
+    final hasSection = item.title == widget.controller.currentTitle;
 
     final cell = Padding(
       padding: const EdgeInsets.symmetric(horizontal: 12),
@@ -123,7 +122,7 @@ class _SideBarState extends State<_SideBar> {
     );
   }
 
-  void _onRouteChanged(_, String? e) {
+  void _onTitleChanged(_, String? e) {
     setState(() {});
   }
 
@@ -139,6 +138,7 @@ class _SideBarState extends State<_SideBar> {
     }
     if (item.pageBuilder != null) {
       widget.controller.pageChangedEvent.emit(this, item.pageBuilder!);
+      widget.controller.titleChangedEvent.emit(this, item.title);
     }
     if (item.route != null) {
       Get.offAllNamed(item.route!.name, id: widget.navId);

+ 14 - 15
lib/components/side_nav/side_nav.dart

@@ -59,20 +59,18 @@ class _VSideNavViewState extends State<VSideNavView> {
       navId: widget.navId,
     );
 
-    return Container(
-      child: Row(
-        children: [
-          Expanded(
-            flex: widget.leftFlex,
-            child: sideView,
-          ),
-          const VerticalDivider(width: 1),
-          Expanded(
-            flex: widget.rightFlex,
-            child: navView,
-          ),
-        ],
-      ),
+    return Row(
+      children: [
+        Expanded(
+          flex: widget.leftFlex,
+          child: sideView,
+        ),
+        const VerticalDivider(width: 1),
+        Expanded(
+          flex: widget.rightFlex,
+          child: navView,
+        ),
+      ],
     );
   }
 
@@ -88,6 +86,7 @@ class _VSideNavViewState extends State<VSideNavView> {
     final firstPageItem =
         widget.items.firstWhereOrNull((e) => e.pageBuilder != null);
     final builder = firstPageItem?.pageBuilder;
+    controller.titleChangedEvent.emit(this, firstPageItem?.title);
     WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
       controller.pageChangedEvent.emit(this, builder);
     });
@@ -98,6 +97,6 @@ class _VSideNavViewState extends State<VSideNavView> {
         widget.items.firstWhereOrNull((e) => e.route != null);
 
     final firstRoute = firstRouteItem?.route;
-    controller.routeChangedEvent.emit(this, firstRoute?.name);
+    controller.titleChangedEvent.emit(this, firstRoute?.name);
   }
 }

+ 33 - 18
lib/pages/settings/center/view.dart

@@ -21,7 +21,7 @@ class SettingCenterPage extends GetView<SettingCenterController> {
   @override
   Widget build(BuildContext context) {
     return VSideNavView(
-      navId: NavIds.SETTINGS,
+      // navId: NavIds.SETTINGS,
       items: _buildItems(),
     );
   }
@@ -41,7 +41,7 @@ class SettingCenterPage extends GetView<SettingCenterController> {
       title: "数据同步",
       icon: Icon(Icons.sync, color: Colors.grey.shade700),
       onTap: () {
-        Get.toNamed("/data_sync");
+        //Get.toNamed("/data_sync");
       },
     );
   }
@@ -50,15 +50,18 @@ class SettingCenterPage extends GetView<SettingCenterController> {
     return VSideNavMenuItem(
       title: "设备管理",
       icon: Icon(Icons.gamepad_outlined, color: Colors.grey.shade700),
-      route: VRouteSetting(
-        "/devices",
-        () => const DevicesSettingPage(),
-        binding: BindingsBuilder(
-          () {
-            Get.lazyPut(() => DevicesSettingController());
-          },
-        ),
+      pageBuilder: (_) => _buildInterval(
+        const DevicesSettingPage(),
       ),
+      // route: VRouteSetting(
+      //   "/devices",
+      //   () => const DevicesSettingPage(),
+      //   binding: BindingsBuilder(
+      //     () {
+      //       Get.lazyPut(() => DevicesSettingController());
+      //     },
+      //   ),
+      // ),
     );
   }
 
@@ -66,15 +69,18 @@ class SettingCenterPage extends GetView<SettingCenterController> {
     return VSideNavMenuItem(
       title: "服务设置",
       icon: Icon(Icons.electrical_services, color: Colors.grey.shade700),
-      route: VRouteSetting(
-        "/server",
-        () => const ServerSettingPage(),
-        binding: BindingsBuilder(
-          () {
-            Get.lazyPut(() => ServerSettingController());
-          },
-        ),
+      pageBuilder: (_) => _buildInterval(
+        const ServerSettingPage(),
       ),
+      // route: VRouteSetting(
+      //   "/server",
+      //   () => const ServerSettingPage(),
+      //   binding: BindingsBuilder(
+      //     () {
+      //       Get.lazyPut(() => ServerSettingController());
+      //     },
+      //   ),
+      // ),
     );
   }
 
@@ -173,6 +179,15 @@ class SettingCenterPage extends GetView<SettingCenterController> {
       },
     );
   }
+
+  Widget _buildInterval(Widget child) {
+    return Padding(
+      padding: const EdgeInsets.symmetric(
+        horizontal: 16,
+      ),
+      child: child,
+    );
+  }
 }
 
 class ProgressBar extends StatelessWidget {

+ 4 - 0
lib/routes/routes.dart

@@ -17,6 +17,8 @@ import 'package:vitalapp/pages/medical/records/view.dart';
 import 'package:vitalapp/pages/medical/view.dart';
 import 'package:vitalapp/pages/settings/center/controller.dart';
 import 'package:vitalapp/pages/settings/center/view.dart';
+import 'package:vitalapp/pages/settings/devices/controller.dart';
+import 'package:vitalapp/pages/settings/server/controller.dart';
 import 'package:vitalapp/routes/route_setting.dart';
 import 'package:vitalapp/pages/check/examination/controller.dart';
 import 'package:vitalapp/pages/check/examination/view.dart';
@@ -120,6 +122,8 @@ class Routes {
       () => const SettingCenterPage(),
       binding: BindingsBuilder(
         () {
+          Get.lazyPut(() => DevicesSettingController());
+          Get.lazyPut(() => ServerSettingController());
           Get.put(SettingCenterController());
         },
       ),