feat:增加common框架

This commit is contained in:
2025-11-23 20:28:45 +08:00
parent e38e26e685
commit f11b8d6a30
32 changed files with 280 additions and 1545 deletions

View File

@@ -1,7 +1,7 @@
import 'package:blog_app/models/common.dart';
import 'package:flutter/foundation.dart';
import 'package:blog_app/apis/blog.dart';
import 'package:blog_app/models/blog.dart';
import 'package:flutter_common/models/common_model.dart';
class BlogProvider with ChangeNotifier {
List<Blog> blogList = [];
@@ -24,7 +24,8 @@ class BlogProvider with ChangeNotifier {
final int pageSize = 5;
bool hasMore = true;
bool isLoading = false;
int currentYear = DateTime.now().year;
int currentStatsYear = DateTime.now().year;
int currentQueryYear = DateTime.now().year;
String? error;
late List<ChartData> approvedStats = [];
@@ -107,8 +108,8 @@ class BlogProvider with ChangeNotifier {
error = null;
notifyListeners();
final approvedResult = await queryBlogApprovedStatsApi(currentYear);
final visitResult = await queryBlogVisitStatsApi(currentYear);
final approvedResult = await queryBlogApprovedStatsApi(currentStatsYear);
final visitResult = await queryBlogVisitStatsApi(currentStatsYear);
final visitRankResult = await queryBlogVisitRankStatsApi();
final categoryResult = await queryBlogCategoryStatsApi();
final readRankResult = await queryBlogReadRankStatsApi();
@@ -158,7 +159,7 @@ class BlogProvider with ChangeNotifier {
blogList = [];
notifyListeners();
final result = await queryBlogByConditionApi(null, null, currentYear);
final result = await queryBlogByConditionApi(null, null, currentQueryYear);
blogList = result;
} catch (e) {
error = '加载数据失败: $e';

View File

@@ -1,76 +0,0 @@
import 'package:blog_app/utils/theme_utils.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class ThemeProvider with ChangeNotifier {
static const String _themeKey = 'selected_theme';
static const String _darkModeKey = 'is_dark_mode';
bool isDarkMode = false;
ThemeColor currentTheme = defaultThemes[0];
late SharedPreferences _prefs;
bool isInitialized = false;
ThemeProvider() {
_initPreferences();
}
// 初始化 SharedPreferences
Future<void> _initPreferences() async {
_prefs = await SharedPreferences.getInstance();
_loadPreferences();
isInitialized = true;
notifyListeners();
}
// 加载存储的设置
void _loadPreferences() {
isDarkMode = _prefs.getBool(_darkModeKey) ?? false;
// 加载主题色
final themeName = _prefs.getString(_themeKey);
if (themeName != null) {
currentTheme = getThemeColor(themeName);
}
}
// 保存主题色
Future<void> _saveTheme() async {
await _prefs.setString(_themeKey, currentTheme.name);
}
// 保存暗黑模式
Future<void> _saveDarkMode() async {
await _prefs.setBool(_darkModeKey, isDarkMode);
}
List<ThemeColor> get availableThemes => defaultThemes;
// 切换明暗模式
void toggleDarkMode(bool value) {
isDarkMode = value;
_saveDarkMode();
notifyListeners();
}
// 更改主题色
void changeTheme(ThemeColor theme) {
currentTheme = theme;
_saveTheme();
notifyListeners();
}
ThemeData get currentThemeData {
return ThemeData(
primarySwatch: currentTheme.materialColor,
colorScheme: ColorScheme.fromSeed(
seedColor: currentTheme.primaryColor,
brightness: isDarkMode ? Brightness.dark : Brightness.light,
),
useMaterial3: true,
fontFamily: 'CustomFont',
);
}
}