diff --git a/lib/features/admin/presentation/admin_page.dart b/lib/features/admin/presentation/admin_page.dart new file mode 100644 index 0000000..bcc2499 --- /dev/null +++ b/lib/features/admin/presentation/admin_page.dart @@ -0,0 +1,157 @@ +import 'package:flutter/material.dart'; +import 'widgets/weather.dart'; + +class AdminPage extends StatelessWidget { + const AdminPage({Key? key}) : super(key: key); + + // Helper widget để tạo các card + Widget _buildCard(String title, String content, {IconData? icon}) { + return Card( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + color: Colors.lightGreen[100], + elevation: 3, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + // mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (icon != null) + Icon( + icon, + size: 30, + color: Colors.green[700], + ), + if (icon != null) const SizedBox(height: 10), + Text( + title, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.green, + ), + ), + const SizedBox(height: 10), + Text( + content, + style: const TextStyle(fontSize: 14, color: Colors.black87), + ), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + const SizedBox(height: 20), + const WeatherApiWidget(location: 'Hanoi'), // Widget thời tiết + const SizedBox(height: 20), + + // Hàng 1: 3 card + Row( + children: [ + Expanded( + child: _buildCard( + 'Thông Báo Quan Trọng', + 'Các thông báo mới nhất từ ban quản lý.', + icon: Icons.notifications, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Tóm Tắt Tài Chính', + 'Tình hình tài chính hiện tại và các khoản chi tiêu gần đây.', + icon: Icons.attach_money, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Trạng Thái Hệ Thống', + 'Trạng thái các hệ thống quan trọng trong chung cư.', + icon: Icons.settings, + ), + ), + ], + ), + const SizedBox(height: 20), + + // Hàng 2: 2 card + Row( + children: [ + Expanded( + child: _buildCard( + 'Cảnh Báo & Bảo Trì', + 'Các cảnh báo về bảo trì và công việc bảo trì đang tiến hành.', + icon: Icons.warning, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Phản Hồi & Đánh Giá', + 'Phản hồi và đánh giá gần đây từ cư dân.', + icon: Icons.feedback, + ), + ), + ], + ), + const SizedBox(height: 20), + + // Hàng 3: 4 card + Row( + children: [ + Expanded( + child: _buildCard( + 'Trạng Thái An Ninh', + 'Thông tin về hệ thống an ninh và các sự cố an ninh.', + icon: Icons.security, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Tài Liệu Quan Trọng', + 'Truy cập nhanh đến các tài liệu quan trọng.', + icon: Icons.folder, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Cập Nhật Phần Mềm', + 'Phiên bản hiện tại và các bản vá lỗi mới nhất.', + icon: Icons.update, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + 'Lịch Sử & Ghi Chép', + 'Lịch sử các hoạt động đã diễn ra trong hệ thống.', + icon: Icons.history, + ), + ), + ], + ), + const SizedBox(height: 20), + + const Text( + 'Trang chủ đang được phát triển...', + style: TextStyle(fontSize: 18, color: Colors.grey), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/admin/presentation/home_page.dart b/lib/features/admin/presentation/home_page.dart index fffc08e..d932c77 100644 --- a/lib/features/admin/presentation/home_page.dart +++ b/lib/features/admin/presentation/home_page.dart @@ -9,8 +9,7 @@ import 'events_page.dart'; import 'fees_page.dart'; import 'users_page.dart'; import 'complaints_page.dart'; -import 'fees_page.dart'; -import 'widgets/weather.dart'; // Updated import +import 'admin_page.dart'; class AdminHomePage extends StatefulWidget { final AuthenticationService authService; @@ -71,7 +70,7 @@ class _AdminHomePageState extends State { void initState() { super.initState(); _pages = [ - const EmptyPage(), // 0: Trang chủ trống + const AdminPage(), // 0: Trang chủ trống const DashboardPage(), // 1: Bảng điều khiển UsersPage( authService: widget.authService, @@ -343,28 +342,3 @@ class _AdminHomePageState extends State { ); } } - -/// Widget for Empty Home Page -class EmptyPage extends StatelessWidget { - const EmptyPage({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - children: const [ - SizedBox(height: 20), - WeatherApiWidget(location: 'Hanoi'), // Updated widget - SizedBox(height: 20), - Text( - 'Trang chủ đang được phát triển...', - style: TextStyle(fontSize: 18, color: Colors.grey), - ), - ], - ), - ), - ); - } -}