update new version
This commit is contained in:
+97
-89
@@ -12,19 +12,15 @@ import 'dart:io';
|
||||
|
||||
// 確保引入新的公告管理器
|
||||
import './AnnouncementManager/announcement_manager.dart';
|
||||
// 確保引入新的待辦事項管理器
|
||||
import './todo/todo_manager.dart';
|
||||
// 通訊錄
|
||||
import './employee/person_manager.dart';
|
||||
// 會議通知
|
||||
import './meeting/meeting_manager.dart';
|
||||
// Issue
|
||||
import './issue/issue_manager.dart';
|
||||
// setting
|
||||
import './setup/settings_page.dart';
|
||||
import './clockin/clock_in_manager.dart';
|
||||
import './leave/leave_manager.dart';
|
||||
import './calendar/calendar_manager.dart';
|
||||
import './expense/expense_manager.dart';
|
||||
|
||||
class MyHttpOverrides extends HttpOverrides {
|
||||
@override
|
||||
@@ -35,9 +31,14 @@ class MyHttpOverrides extends HttpOverrides {
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
// 在 main 函數中加入這行
|
||||
void main() async {
|
||||
// 在 main 函數中加入這行(否則 https 在 debug 可能會報錯)
|
||||
HttpOverrides.global = MyHttpOverrides();
|
||||
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
// App 啟動時先載入一次,之後全域都不用再寫 await
|
||||
await AuthManager().initialize();
|
||||
|
||||
runApp(const ZenApp());
|
||||
}
|
||||
|
||||
@@ -69,97 +70,16 @@ class MenuItem {
|
||||
final IconData icon;
|
||||
final Widget targetScreen;
|
||||
|
||||
const MenuItem({
|
||||
MenuItem({
|
||||
required this.title,
|
||||
required this.icon,
|
||||
required this.targetScreen,
|
||||
});
|
||||
}
|
||||
|
||||
// 所有選單項目的列表
|
||||
const List<MenuItem> menuItems = [
|
||||
// 1. 新聞資訊 (使用您的 NewsManager)
|
||||
MenuItem(
|
||||
title: '公告事項',
|
||||
icon: Icons.article,
|
||||
//targetScreen: NewsManager(),
|
||||
targetScreen: AnnouncementManager(),
|
||||
),
|
||||
// 2. 員工打卡
|
||||
MenuItem(
|
||||
title: '員工打卡',
|
||||
icon: Icons.access_time_filled,
|
||||
targetScreen: ClockInManager(userId: "admin"),
|
||||
),
|
||||
// 2. 員工打卡
|
||||
MenuItem(
|
||||
title: '請假作業',
|
||||
icon: Icons.event_available,
|
||||
targetScreen: LeaveManager(currentUserId: "admin"),
|
||||
), // 3. 待簽核事項
|
||||
MenuItem(
|
||||
title: '待簽核事項',
|
||||
icon: Icons.pending_actions,
|
||||
targetScreen: PlaceholderScreen(title: '待簽核事項'),
|
||||
),
|
||||
// 4. 待辦事項
|
||||
MenuItem(
|
||||
title: '待辦事項',
|
||||
icon: Icons.checklist,
|
||||
targetScreen: TodoManager(),
|
||||
),
|
||||
// 5. 行事曆
|
||||
MenuItem(
|
||||
title: '行事曆',
|
||||
icon: Icons.calendar_today,
|
||||
targetScreen: CalendarManager(userId: "120102"),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '會議通知',
|
||||
icon: Icons.people_alt,
|
||||
targetScreen: MeetingManager(),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '產品型錄',
|
||||
icon: Icons.local_mall,
|
||||
targetScreen: PlaceholderScreen(title: '產品型錄'),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '通訊錄',
|
||||
icon: Icons.contact_phone,
|
||||
targetScreen: PersonManager(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '業績查詢',
|
||||
icon: Icons.query_stats,
|
||||
targetScreen: PlaceholderScreen(title: '報告查詢'),
|
||||
),
|
||||
MenuItem(
|
||||
title: 'Issue List',
|
||||
icon: Icons.bug_report,
|
||||
targetScreen: IssueManager(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '設定',
|
||||
icon: Icons.settings,
|
||||
targetScreen: SettingsPage(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '新聞(Demo)',
|
||||
icon: Icons.article,
|
||||
targetScreen: NewsManager(),
|
||||
//targetScreen: AnnouncementManager(),
|
||||
),
|
||||
];
|
||||
|
||||
|
||||
// ------------------------------------
|
||||
// 主選單畫面 (MainMenu) - 九宮格實作
|
||||
// ------------------------------------
|
||||
|
||||
class MainMenu extends StatelessWidget {
|
||||
const MainMenu({super.key});
|
||||
|
||||
@@ -170,6 +90,94 @@ class MainMenu extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// 從 AuthManager 取得當前用戶 ID,若為空則預設 guest
|
||||
final String uid = AuthManager().currentUserId ?? "admin";
|
||||
|
||||
// 所有選單項目的列表
|
||||
final List<MenuItem> menuItems = [
|
||||
// 1. 新聞資訊 (使用您的 NewsManager)
|
||||
MenuItem(
|
||||
title: '公告事項',
|
||||
icon: Icons.article,
|
||||
//targetScreen: NewsManager(),
|
||||
targetScreen: AnnouncementManager(),
|
||||
),
|
||||
// 2. 員工打卡
|
||||
MenuItem(
|
||||
title: '員工打卡',
|
||||
icon: Icons.access_time_filled,
|
||||
targetScreen: ClockInManager(userId: uid),
|
||||
),
|
||||
// 2. 員工打卡
|
||||
MenuItem(
|
||||
title: '請假作業',
|
||||
icon: Icons.event_available,
|
||||
targetScreen: LeaveManager(currentUserId: uid),
|
||||
), // 3. 待簽核事項
|
||||
MenuItem(
|
||||
title: '待簽核事項',
|
||||
icon: Icons.pending_actions,
|
||||
targetScreen: PlaceholderScreen(title: '待簽核事項'),
|
||||
),
|
||||
// 4. 待辦事項
|
||||
MenuItem(
|
||||
title: '待辦事項',
|
||||
icon: Icons.checklist,
|
||||
targetScreen: TodoManager(),
|
||||
),
|
||||
// 5. 行事曆
|
||||
MenuItem(
|
||||
title: '行事曆',
|
||||
icon: Icons.calendar_today,
|
||||
targetScreen: CalendarManager(userId: uid),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '會議通知',
|
||||
icon: Icons.people_alt,
|
||||
targetScreen: MeetingManager(),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '產品型錄',
|
||||
icon: Icons.local_mall,
|
||||
targetScreen: PlaceholderScreen(title: '產品型錄'),
|
||||
),
|
||||
// 6. 其他功能 (佔位)
|
||||
MenuItem(
|
||||
title: '通訊錄',
|
||||
icon: Icons.contact_phone,
|
||||
targetScreen: PersonManager(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '業績查詢',
|
||||
icon: Icons.query_stats,
|
||||
targetScreen: PlaceholderScreen(title: '報告查詢'),
|
||||
),
|
||||
MenuItem(
|
||||
title: 'Issue List',
|
||||
icon: Icons.bug_report,
|
||||
targetScreen: IssueManager(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '設定',
|
||||
icon: Icons.settings,
|
||||
targetScreen: SettingsPage(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '費用申請',
|
||||
icon: Icons.article,
|
||||
targetScreen: ExpenseManager(currentUserId: uid),
|
||||
//targetScreen: AnnouncementManager(),
|
||||
),
|
||||
MenuItem(
|
||||
title: '新聞(Demo)',
|
||||
icon: Icons.article,
|
||||
targetScreen: NewsManager(),
|
||||
//targetScreen: AnnouncementManager(),
|
||||
),
|
||||
];
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('企業應用主選單'),
|
||||
|
||||
Reference in New Issue
Block a user