PC\19500 před 4 týdny
rodič
revize
7f9b1fe4f0

+ 5 - 0
lib/app/router.dart

@@ -1,4 +1,5 @@
 import 'package:go_router/go_router.dart';
+import 'package:sino_med_cloud/features/main_tab_page.dart';
 import '../features/auth/presentation/login_page.dart';
 
 class AppRouter {
@@ -7,6 +8,10 @@ class AppRouter {
       GoRoute(
         path: '/',
         builder: (_, __) => const LoginPage(),
+      ),
+      GoRoute(
+        path: '/mainTab',
+        builder: (_, __) => const MainTabPage(),
       )
     ]
   );

+ 3 - 2
lib/features/HomePage/presentation/home_page.dart

@@ -12,8 +12,9 @@ class _HomePageState extends ConsumerState<HomePage>
     with SingleTickerProviderStateMixin {
   @override
   Widget build(BuildContext context) {
-    // TODO: implement build
-    throw UnimplementedError();
+    return const Center(
+      child: Text('首页'),
+    );
   }
   
 }

+ 3 - 2
lib/features/HospitalPage/presentation/hospital_page.dart

@@ -12,8 +12,9 @@ class _HospitalPageState extends ConsumerState<HospitalPage>
     with SingleTickerProviderStateMixin {
   @override
   Widget build(BuildContext context) {
-    // TODO: implement build
-    throw UnimplementedError();
+    return const Center(
+      child: Text('医院'),
+    );
   }
 
 }

+ 3 - 2
lib/features/MallPage/presentation/mall_page.dart

@@ -12,8 +12,9 @@ class _MallPageState extends ConsumerState<MallPage>
     with SingleTickerProviderStateMixin {
   @override
   Widget build(BuildContext context) {
-    // TODO: implement build
-    throw UnimplementedError();
+    return const Center(
+      child: Text('商城'),
+    );
   }
 
 }

+ 3 - 3
lib/features/MinePage/presentation/mine_page.dart

@@ -12,9 +12,9 @@ class _MinePageState extends ConsumerState<MinePage>
     with SingleTickerProviderStateMixin {
   @override
   Widget build(BuildContext context) {
-    // TODO: implement build
-    throw UnimplementedError();
+    return const Center(
+      child: Text('我的'),
+    );
   }
-  
 
 }

+ 9 - 6
lib/features/auth/presentation/login_page.dart

@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:go_router/go_router.dart';
 import 'package:sino_med_cloud/l10n/app_localizations.dart';
 
 class LoginPage extends ConsumerStatefulWidget {
@@ -73,9 +74,10 @@ class _LoginPageState extends ConsumerState<LoginPage>
     final l10n = AppLocalizations.of(context)!;
     if (_passwordFormKey.currentState!.validate()) {
       // TODO: 调用登录接口
-      ScaffoldMessenger.of(context).showSnackBar(
-        SnackBar(content: Text(l10n.loginNotImplemented)),
-      );
+      // ScaffoldMessenger.of(context).showSnackBar(
+      //   SnackBar(content: Text(l10n.loginNotImplemented)),
+      // );
+      context.go('/mainTab');
     }
   }
 
@@ -84,9 +86,10 @@ class _LoginPageState extends ConsumerState<LoginPage>
     final l10n = AppLocalizations.of(context)!;
     if (_smsFormKey.currentState!.validate()) {
       // TODO: 调用登录接口
-      ScaffoldMessenger.of(context).showSnackBar(
-        SnackBar(content: Text(l10n.loginNotImplemented)),
-      );
+      // ScaffoldMessenger.of(context).showSnackBar(
+        // SnackBar(content: Text(l10n.loginNotImplemented)),
+      // );
+      context.go('/mainTab');
     }
   }
 

+ 51 - 3
lib/features/main_tab_page.dart

@@ -2,6 +2,11 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_riverpod/flutter_riverpod.dart';
 
+import 'HomePage/presentation/home_page.dart';
+import 'HospitalPage/presentation/hospital_page.dart';
+import 'MallPage/presentation/mall_page.dart';
+import 'MinePage/presentation/mine_page.dart';
+
 class MainTabPage extends ConsumerStatefulWidget{
   const MainTabPage({super.key});
 
@@ -12,10 +17,53 @@ class MainTabPage extends ConsumerStatefulWidget{
 
 class _MainTabPageState extends ConsumerState<MainTabPage>
     with SingleTickerProviderStateMixin {
+  int _currentIndex = 0;
+
+  final List<Widget> _pages = const [
+    HomePage(),
+    HospitalPage(),
+    MallPage(),
+    MinePage(),
+  ];
+
   @override
   Widget build(BuildContext context) {
-    // TODO: implement build
-    throw UnimplementedError();
+    return Scaffold(
+      body: IndexedStack(
+        index: _currentIndex,
+        children: _pages,
+      ),
+      bottomNavigationBar: BottomNavigationBar(
+        currentIndex: _currentIndex,
+        type: BottomNavigationBarType.fixed,
+        onTap: (index) {
+          setState(() {
+            _currentIndex = index;
+          });
+        },
+        items: const [
+          BottomNavigationBarItem(
+            icon: Icon(Icons.home_outlined),
+            activeIcon: Icon(Icons.home),
+            label: '首页',
+          ),
+          BottomNavigationBarItem(
+            icon: Icon(Icons.local_hospital_outlined),
+            activeIcon: Icon(Icons.local_hospital),
+            label: '医院',
+          ),
+          BottomNavigationBarItem(
+            icon: Icon(Icons.shopping_cart_outlined),
+            activeIcon: Icon(Icons.shopping_cart),
+            label: '商城',
+          ),
+          BottomNavigationBarItem(
+            icon: Icon(Icons.person_outlined),
+            activeIcon: Icon(Icons.person),
+            label: '我的',
+          ),
+        ]
+      ),
+    );
   }
-
 }