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,10 +2,10 @@ import 'package:flisp_app/models/calendar.dart';
import 'package:flisp_app/provider/calendar_provider.dart';
import 'package:flisp_app/service/calendar_service.dart';
import 'package:flisp_app/utils/notify_utils.dart';
import 'package:flisp_app/widgets/awesome_dialog.dart';
import 'package:flisp_app/widgets/calendar_form.dart';
import 'package:flisp_app/widgets/calendar_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/dialog_widget.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:provider/provider.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
@@ -107,9 +107,9 @@ class CalendarPageState extends State<CalendarPage> {
});
if (isSuccess) {
showSuccessDialog(context, isEditing ? '更新成功' : '添加成功');
showSuccessTip(context, isEditing ? '更新成功' : '添加成功');
} else {
showErrorDialog(context, isEditing ? '更新失败' : '添加失败');
showErrorTip(context, isEditing ? '更新失败' : '添加失败');
}
}
@@ -122,9 +122,9 @@ class CalendarPageState extends State<CalendarPage> {
});
if (isSuccess) {
showSuccessDialog(context, '删除成功');
showSuccessTip(context, '删除成功');
} else {
showErrorDialog(context, '删除失败');
showErrorTip(context, '删除失败');
}
}

View File

@@ -2,10 +2,10 @@ import 'package:flisp_app/models/flisp.dart';
import 'package:flisp_app/provider/flisp_provider.dart';
import 'package:flisp_app/service/flisp_service.dart';
import 'package:flisp_app/utils/flisp_utils.dart';
import 'package:flisp_app/widgets/awesome_dialog.dart';
import 'package:flisp_app/widgets/flisp_form.dart';
import 'package:flisp_app/widgets/flisp_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/dialog_widget.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:provider/provider.dart';
import 'package:flisp_app/widgets/common.dart';
@@ -117,9 +117,9 @@ class FlispPageState extends State<FlispPage> {
});
if (isSuccess) {
showSuccessDialog(context, isEditing ? '更新成功' : '添加成功');
showSuccessTip(context, isEditing ? '更新成功' : '添加成功');
} else {
showErrorDialog(context, isEditing ? '更新失败' : '添加失败');
showErrorTip(context, isEditing ? '更新失败' : '添加失败');
}
}
@@ -131,9 +131,9 @@ class FlispPageState extends State<FlispPage> {
});
if (isSuccess) {
showSuccessDialog(context, '删除成功');
showSuccessTip(context, '删除成功');
} else {
showErrorDialog(context, '删除失败');
showErrorTip(context, '删除失败');
}
}
}

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,
),
),
),
],
),

View File

@@ -1,9 +1,9 @@
import 'package:flisp_app/provider/todo_provider.dart';
import 'package:flisp_app/service/todo_service.dart';
import 'package:flisp_app/utils/notify_utils.dart';
import 'package:flisp_app/widgets/awesome_dialog.dart';
import 'package:flisp_app/widgets/todo_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/dialog_widget.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:provider/provider.dart';
import 'package:flisp_app/models/todo.dart';
@@ -187,9 +187,9 @@ class TodoPageState extends State<TodoPage> {
_refreshTodos();
if (isSuccess) {
showSuccessDialog(context, isEditing ? '更新成功' : '添加成功');
showSuccessTip(context, isEditing ? '更新成功' : '添加成功');
} else {
showErrorDialog(context, isEditing ? '更新失败' : '添加失败');
showErrorTip(context, isEditing ? '更新失败' : '添加失败');
}
}
@@ -200,9 +200,9 @@ class TodoPageState extends State<TodoPage> {
_refreshTodos();
if (isSuccess) {
showSuccessDialog(context, '删除成功');
showSuccessTip(context, '删除成功');
} else {
showErrorDialog(context, '删除失败');
showErrorTip(context, '删除失败');
}
}
}