feat:增加统计图表模块

This commit is contained in:
2025-11-14 11:41:05 +08:00
parent e384db7845
commit 49ecfb2e5e
10 changed files with 621 additions and 26 deletions

View File

@@ -86,28 +86,62 @@ class AppDrawer extends StatelessWidget {
);
}
Widget buildVersionInfo({
required BuildContext context,
required String fullVersion,
}) {
return Container(
width: double.infinity,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
border: Border(top: BorderSide(color: Colors.grey.shade300)),
),
child: Text(
'版本 v$fullVersion',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12,
color: Theme.of(context).colorScheme.primary,
),
),
);
}
@override
Widget build(BuildContext context) {
final appProvider = Provider.of<AppProvider>(context);
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
child: Column(
children: [
// 抽屉头部
buildDrawerHeader(context),
// 主要内容区域,可以滚动
Expanded(
child: ListView(
padding: EdgeInsets.zero,
children: [
// 抽屉头部
buildDrawerHeader(context),
_buildThemeSection(context, appProvider),
const Divider(),
_buildDrawerItem(
context: context,
icon: Icons.help,
title: '帮助与反馈',
onTap: () {
Navigator.pop(context);
// 这里可以导航到帮助页面
},
),
],
),
),
_buildThemeSection(context, appProvider),
const Divider(),
_buildDrawerItem(
context: context,
icon: Icons.help,
title: '帮助与反馈',
onTap: () {
Navigator.pop(context);
// 这里可以导航到帮助页面
Consumer<AppProvider>(
builder: (context, appProvider, child) {
return buildVersionInfo(
context: context,
fullVersion: appProvider.fullVersion,
);
},
),
],

View File

@@ -1,6 +1,7 @@
import 'package:flisp_app/layout/app_drawer.dart';
import 'package:flisp_app/pages/calendar_page.dart';
import 'package:flisp_app/pages/flisp_page.dart';
import 'package:flisp_app/pages/stats_page.dart';
import 'package:flisp_app/pages/todo_page.dart';
import 'package:flisp_app/provider/app_provider.dart';
import 'package:flutter/material.dart';
@@ -25,6 +26,7 @@ class _MainScreenState extends State<MainScreen> {
icon: Icon(Icons.calendar_month_rounded),
label: '日程',
),
BottomNavigationBarItem(icon: Icon(Icons.insert_chart), label: '统计'),
];
@override
@@ -89,7 +91,9 @@ class _MainScreenState extends State<MainScreen> {
}
}
Widget _buildFloatingButton(BuildContext context, int index) {
Widget? _buildFloatingButton(BuildContext context, int index) {
if (index == 3) return null;
return FloatingActionButton(
onPressed: () => _onPressFloatingButton(index),
backgroundColor: Colors.transparent,
@@ -115,6 +119,8 @@ class _MainScreenState extends State<MainScreen> {
return TodoPage(key: _todoPageKey);
case 2:
return CalendarPage(key: _calendarPageKey);
case 3:
return StatsPage();
default:
return FlispPage(key: _flispPageKey);
}