feat:更新统计模块

This commit is contained in:
2025-07-28 16:22:52 +08:00
parent 34780651a8
commit 8923d9e63a
9 changed files with 555 additions and 214 deletions

34
lib/models/stats.dart Normal file
View File

@@ -0,0 +1,34 @@
import 'package:json_annotation/json_annotation.dart';
part 'stats.g.dart';
@JsonSerializable()
class SummaryStats {
final int recipeCount;
final int categoryCount;
final int workCount;
const SummaryStats({
required this.recipeCount,
required this.categoryCount,
required this.workCount,
});
factory SummaryStats.fromJson(Map<String, dynamic> json) =>
_$SummaryStatsFromJson(json);
Map<String, dynamic> toJson() => _$SummaryStatsToJson(this);
}
@JsonSerializable()
class ChartData {
final String name;
final double value;
const ChartData({required this.name, required this.value});
factory ChartData.fromJson(Map<String, dynamic> json) =>
_$ChartDataFromJson(json);
Map<String, dynamic> toJson() => _$ChartDataToJson(this);
}

30
lib/models/stats.g.dart Normal file
View File

@@ -0,0 +1,30 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'stats.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
SummaryStats _$SummaryStatsFromJson(Map<String, dynamic> json) => SummaryStats(
recipeCount: (json['recipeCount'] as num).toInt(),
categoryCount: (json['categoryCount'] as num).toInt(),
workCount: (json['workCount'] as num).toInt(),
);
Map<String, dynamic> _$SummaryStatsToJson(SummaryStats instance) =>
<String, dynamic>{
'recipeCount': instance.recipeCount,
'categoryCount': instance.categoryCount,
'workCount': instance.workCount,
};
ChartData _$ChartDataFromJson(Map<String, dynamic> json) => ChartData(
name: json['name'] as String,
value: (json['value'] as num).toDouble(),
);
Map<String, dynamic> _$ChartDataToJson(ChartData instance) => <String, dynamic>{
'name': instance.name,
'value': instance.value,
};