feat:增加common框架

This commit is contained in:
2025-11-23 20:17:10 +08:00
parent 8795279d8a
commit 607b27d54f
26 changed files with 208 additions and 1116 deletions

View File

@@ -2,12 +2,13 @@ import 'package:flisp_app/models/flisp.dart';
import 'package:flisp_app/models/todo.dart';
import 'package:flisp_app/service/flisp_service.dart';
import 'package:flisp_app/service/todo_service.dart';
import 'package:flisp_app/widgets/chart.dart';
import 'package:flisp_app/widgets/common.dart';
import 'package:flisp_app/widgets/flisp_widget.dart';
import 'package:flisp_app/widgets/todo_widget.dart';
import 'package:flisp_app/widgets/year_selector.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/models/common_model.dart';
import 'package:flutter_common/widget/chart.dart';
import 'package:flutter_common/widget/common_widget.dart';
import 'package:flutter_common/widget/year_selector.dart';
class StatsPage extends StatefulWidget {
const StatsPage({super.key});
@@ -128,44 +129,6 @@ class StatsPageState extends State<StatsPage> {
);
}
Widget _buildFlispMonthlyStats(BuildContext context) {
return Column(
children: [
buildChartTitle(context, '每月闪灵数量统计', Icons.show_chart),
const SizedBox(height: 3),
buildChartDivider(context),
const SizedBox(height: 3),
Expanded(
child: lineChart(
context: context,
xAxisName: '月份',
yAxisName: '数量',
unit: '',
data: flispMonthlyStats,
),
),
],
);
}
Widget _buildFlispCategoryStats(BuildContext context) {
return Column(
children: [
buildChartTitle(context, '闪灵分类统计', Icons.pie_chart),
const SizedBox(height: 3),
buildChartDivider(context),
const SizedBox(height: 3),
Expanded(
child: pieChart(
context: context,
unit: '',
data: flispCategoryStats,
),
),
],
);
}
Widget _buildTodoStats(BuildContext context) {
return Column(
children: [
@@ -183,52 +146,13 @@ class StatsPageState extends State<StatsPage> {
);
}
Widget _buildTodoMonthlyStats(BuildContext context) {
return Column(
children: [
buildChartTitle(context, '每月待办数量统计', Icons.bar_chart),
const SizedBox(height: 3),
buildChartDivider(context),
const SizedBox(height: 3),
Expanded(
child: doubleBarChart(
context: context,
xAxisName: '月份',
yAxisName: '数量',
unit: '',
data1: todoMonthlyStats,
data2: todoMonthlyCompleteStats,
series1Name: '总数',
series2Name: '完成数',
),
),
],
);
}
Widget _buildTodoPriorityStats(BuildContext context) {
return Column(
children: [
buildChartTitle(context, '待办分类统计', Icons.pie_chart),
const SizedBox(height: 3),
buildChartDivider(context),
const SizedBox(height: 3),
Expanded(
child: pieChart(context: context, unit: '', data: todoPriorityStats),
),
],
);
}
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
children: [
YearSelector(
initialYear: DateTime.now().year,
minYear: 2000,
maxYear: 2100,
currentYear: DateTime.now().year,
onYearChanged:
(year) => {
setState(() {
@@ -243,22 +167,53 @@ class StatsPageState extends State<StatsPage> {
SizedBox(height: 10),
SizedBox(
height: chartHeight,
child: BuildCard(child: _buildFlispMonthlyStats(context)),
child: CommonCard(
child: LineChart(
title: '每月闪灵数量统计',
xAxisName: '月份',
yAxisName: '数量',
unit: '',
data: flispMonthlyStats,
),
),
),
SizedBox(height: 10),
SizedBox(
height: chartHeight,
child: BuildCard(child: _buildFlispCategoryStats(context)),
child: CommonCard(
child: PieChart(
title: '闪灵分类统计',
unit: '',
data: flispCategoryStats,
),
),
),
SizedBox(height: 10),
SizedBox(
height: chartHeight,
child: BuildCard(child: _buildTodoMonthlyStats(context)),
child: CommonCard(
child: DoubleBarChart(
title: '每月待办数量统计',
xAxisName: '月份',
yAxisName: '数量',
unit: '',
data1: todoMonthlyStats,
data2: todoMonthlyCompleteStats,
series1Name: '总数',
series2Name: '完成数',
),
),
),
SizedBox(height: 10),
SizedBox(
height: chartHeight,
child: BuildCard(child: _buildTodoPriorityStats(context)),
child: CommonCard(
child: PieChart(
title: '待办分类统计',
unit: '',
data: todoPriorityStats,
),
),
),
],
),