Remove notification service and update project

- Remove flutter_local_notifications dependency from pubspec.yaml
- Delete notification_service.dart file
- Remove notification service references from app_service.dart and app_binding.dart
- Clean up related code and dependencies
This commit is contained in:
Developer
2026-04-08 10:51:43 +08:00
parent cbe11d5db1
commit 2b685b45bb
247 changed files with 34522 additions and 1959 deletions

View File

@@ -2,216 +2,192 @@
All notable changes to this project will be documented in this file.
## [0.8.0] - 2026-04-08
## [0.15.0] - 2026-04-08
### Added
- 📱 **fluttertoast 本地化** - 下载 fluttertoast v9.0.0 到本地 packages 目录
- 支持鸿蒙平台适配
- 创建 `fluttertoast_ohos` 适配模块
- 本地路径导入,支持自定义修改
- 🏗️ **全局 Binding 系统** - 解决 Controller 重复与生命周期问题
- 新增 `AppBinding` 统一管理全局 Service 与 Controller 依赖
- 使用 `Get.lazyPut` + `fenix: true` 确保单例与自动重建
- `main.dart` 中通过 `initialBinding` 接入
- 🎨 **ToastService 消息服务** - 统一 Toast 消息样式
- 支持 4 种消息类型success、error、warning、info
- 自动适配 App 动态主题
- 集成 PageStandards 页面规范
- 提供简洁的 API 接口
- 🚫 **强制页面规范校验中间件** - 不合规页面直接拦截
- 新增 `PageStandardsMiddleware` 在路由进入前校验 `PageRegistry`
- 未注册页面或校验失败自动跳转至违规页
- 新增 `StandardsViolationPage` 展示拦截原因与失败项
- 📦 **统一异常模型** - 网络层结构化错误
- 新增 `ApiException``ApiExceptionType` 枚举
- `ApiService` 所有方法统一抛出 `ApiException`
- 支持超时/无网络/错误响应/取消/未知等类型
- 📏 **ScreenUtilConfig 真正初始化** - 响应式适配生效
- 实现 `ensureScreenSizeAndInit()` 根据屏幕尺寸动态调整设计稿
- 自动分档:手机(375×812)/平板(768×1024)/桌面(1440×1024)
- `PageStandards``scaled` 系列方法已生效
- 🧾 **修复定时通知** - scheduleNotification 真正延迟
- 修改 `NotificationService.scheduleNotification()` 使用 `zonedSchedule`
- 支持按 `delay` 参数延迟触发,不再立即显示
- 🧾 **规范 ProductModel** - 字段语义化
- 增加 `id``emoji` 字段,`imageUrl` 改为可选
- 提供工厂方法 `ProductModel.mock` 用于测试数据
- 购物车改用 `product.id` 而非 `name` 去重
### Changed
- 📦 更新 `pubspec.yaml` 使用本地 `fluttertoast`
- 🔧 更新 `fluttertoast` 支持鸿蒙平台
- 🔧 统一页面注册权威来源
- 移除 `AppPages` 重复定义,仅保留 `AppRoutes.registerAllPages()`
- 所有页面注册与 `requiredStandards` 统一在 `AppRoutes` 管理
- 路由中间件与页面注册表保持一致
## [0.7.0] - 2026-04-08
- 🔧 页面改用 `Get.find()` 替代 `Get.put()`
- `HomePage``CartPage``ProfilePage` 不再重复创建 Controller
- 依赖由 `AppBinding` 统一注入,全局状态一致
### Added
- 🔄 **GetX 全局状态管理系统**
- `BaseController` 基础控制器(加载状态、错误处理)
- `PagedController` 分页控制器(列表分页、加载更多)
- `HomeController` 首页控制器(产品列表、分类筛选、搜索)
- `CartController` 购物车控制器(商品管理、数量调整、总价计算)
- `ProfileController` 个人中心控制器(用户登录、登出、信息更新)
- 🔧 路由校验体系正式接入
- `main.dart``initialBinding``routingCallback` 已生效
- Debug 模式下自动拦截不合规页面
- 🧩 **标准组件库** - 所有组件集成 PageStandards
- `StandardButton` 标准按钮4 种样式primary、secondary、outline、text
- `StandardTextField` 标准输入框(支持图标、错误提示)
- `StandardCard` 标准卡片(支持阴影、边框)
- `StandardListTile` 标准列表项(支持图标、副标题、箭头)
- 📊 **状态组件**
- `EmptyState` 空状态组件支持图标、emoji、按钮
- `ErrorState` 错误状态组件(支持重试按钮)
- 🎯 **交互组件**
- `StandardDialog` 标准对话框(支持确认、取消、破坏性操作)
- `StandardBottomSheet` 标准底部弹窗(支持自定义高度)
- `StandardPicker` 标准选择器(支持泛型)
- 🛡️ **路由守卫系统** - `RouteGuard`
- 支持 3 种认证级别none、optional、required
- 自动重定向到登录页
- 集成 ProfileController 用户状态
### Changed
- 🔄 重构 `HomePage` 使用 GetX 状态管理
- 🔄 重构 `ProductCard` 使用 PageStandards
- 🔄 重构 `LoadingIndicator` 使用 PageStandards
### Technical
- 统一状态管理为 GetX
- 所有组件集成 PageStandards
- 实现路由守卫认证机制
- 新建页面默认支持 GetX
## [0.6.0] - 2026-04-08
### Added
- 📝 **日志服务系统** - 新增 `LoggerService` 完整日志管理
- 支持日志开关、级别、文件写入配置
- 支持 5 种日志级别Debug、Info、Warning、Error、Off
- 支持控制台输出和文件输出
- 支持日志文件自动清理(按大小和数量)
- 配置持久化存储
- 📱 **屏幕适配配置** - 新增 `ScreenUtilConfig` 全局配置
- 设计稿尺寸配置(默认 375x812
- 最小字体适配开关
- 分屏模式开关
- 缩放开关控制
- 配置持久化存储
- 🔧 **全局工具类**
- `AppLogger` - 简化的全局日志工具类
- `ScreenUtilExtension` - 扩展方法支持全局缩放控制
- 📐 **页面规范系统** - 新增 `PageStandards` 页面规范文件
- 统一主题色、字体色、背景色配置
- 统一字体大小、间距规范
- 统一动画配置(开关、速度、预设、曲线)
- 统一响应式布局配置
- 支持多语言、屏幕方向、消息样式
- 支持状态栏沉浸、深色模式、设备类型适配
- 提供 `PageStandardsMixin` 混入和 `StandardPage` 基类
- 提供 `PageStandardsExtension` 扩展方法
- 🔍 **页面验证系统** - 新增 `PageValidator` 页面检测文件
- 注册所有页面条目信息(路由、名称、描述、规范要求)
- 开发时实时检测页面是否遵循规范
- 支持 12 种规范检查项
- 控制台输出警告信息
- 提供验证报告和调试面板
- 📦 **新增依赖库**
- `path_provider` - 文件路径获取
### Changed
- 🔧 更新 `AppService` 集成 `LoggerService``ScreenUtilConfig`
## [0.5.0] - 2026-04-08
### Added
- 📱 **屏幕适配库** - 新增 `flutter_screenutil` 本地化支持
- 下载 `flutter_screenutil v5.9.3` 源码到 `packages/flutter_screenutil`
- 添加鸿蒙平台设备类型识别 `DeviceType.harmonyOS`
- 使用条件导入处理 Web 平台兼容性
- 本地路径导入,支持自定义修改
- 📊 **新增依赖库**
- `pretty_dio_logger` - Dio 网络请求日志美化
- `logger` - 统一日志管理
- `device_info_plus` - 设备信息获取
### Changed
- 📦 更新 `pubspec.yaml` 使用本地 `flutter_screenutil`
- 📝 更新 `README.md` 添加新依赖库说明
## [0.4.0] - 2026-04-08
### Added
-**动画服务系统** - 新增 `AnimationService` 完整动画管理
- 使用 `animations` 库实现专业动画效果
- 支持动画开关、速度、强度、曲线四种参数调节
- 提供 7 种预设模式Standard、Fast、Slow、Smooth、Bouncy、Minimal、None
- 支持 9 种动画曲线类型Linear、EaseIn、EaseOut、EaseInOut、Ease、Bounce、Elastic、FastOutSlowIn、SlowMiddle
- 配置持久化存储,应用重启后保持设置
- 🎬 **页面转场动画组件** - `PageTransitions`
- `fadeThrough` 淡入淡出转场
- `fadeScale` 缩放淡入转场
- `sharedAxis` 共享轴转场(水平/垂直/缩放)
- `getTransitionBuilder` 自适应页面转场构建器
- 📋 **列表项动画组件**
- `AnimatedListItem` 单个列表项动画
- `AnimatedListView` 列表视图动画
- `AnimatedGridView` 网格视图动画
- 支持交错动画效果
- 👆 **交互动画组件**
- `AnimatedButton` 按钮点击缩放动画
- `AnimatedCard` 卡片点击交互动画
- `OpenContainerWrapper` 容器展开转场
- 🎯 **基础动画组件**
- `FadeInWidget` 淡入动画
- `SlideInWidget` 滑入动画
- `ScaleInWidget` 缩放动画
- `StaggeredAnimation` 交错动画
### Changed
- 📱 更新 `ThemeDemoPage` 添加完整动画设置 UI
- 动画开关控制
- 预设模式选择器
- 速度和强度滑块
- 曲线类型选择器
- 实时预览区域
- 🔧 更新 `AppService` 集成 `AnimationService`
## [0.3.0] - 2026-04-07
### Added
- 🌐 **繁体中文支持** - 新增 `zh_Hant` 繁体中文本地化支持
- 新增 `app_zh_Hant.arb` 繁体中文翻译文件
- 新增 `app_localizations_zh_hant.dart` 繁体中文实现
- 更新 `app_localizations.dart` 支持繁体中文区域设置
### Changed
- 📱 **自适应布局系统重构** - 使用 `flutter_adaptive_scaffold` 实现响应式布局
- 新增 `AdaptivePageInterface` 抽象接口定义自适应页面规范
- 新增 `AdaptivePageMixin` 提供单页面自适应布局实现
- 新增 `AdaptiveTabPageInterface``AdaptiveTabPageMixin` 提供标签页自适应布局
- 新增 `AdaptivePageController` 静态方法快速构建自适应页面
- 新增 `AdaptiveLayoutBuilder` 响应式布局构建器
- 新增 `ResponsiveGrid` 响应式网格组件
- 新增 `ResponsivePadding` 响应式内边距组件
- 新增 `AdaptiveDestination` 自适应导航目标配置
## [0.14.0] - 2026-04-08
### Fixed
- 🔧 修复 `flutter_adaptive_scaffold` API 调用错误
- 修复 `SlotLayoutConfig.from` 方法调用
- 修复 `AdaptiveLayout``backgroundColor` 参数问题
- 修复 `secondaryBody` 返回类型问题
- 🔧 **fluttertoast 类型提升错误修复** - 修复编译错误
- 修复 `packages/fluttertoast/lib/fluttertoast.dart:279` 中的类型提升错误
- 将公共属性 `context` 赋值给局部变量 `ctx`,解决 Dart 3.2 以下版本的类型提升限制
- 修复 `packages/fluttertoast/lib/fluttertoast.dart:182-195` 中相同的问题
- 项目现在可以成功编译
## [0.2.0] - 2026-04-06
### Technical
- 解决公共字段无法类型提升的问题,使用局部变量作为变通方案
- 构建成功,生成 app-debug.apk
## [0.13.0] - 2026-04-08
### Fixed
- 🔧 **核心错误修复** - 修复多个严重的代码错误
- 修复 `page_standards.dart``DeviceType.desktop` 缺失问题,添加 `desktop` 到枚举
- 修复 `SystemChrome.setSystemUiOverlayStyle` 方法名拼写错误
- 移除未使用的 `toast_service.dart` 导入
- 修复 `profile_controller.dart` 中使用 `await` 在非 Future 类型上的问题
- 修复 `common_utils.dart` 中未使用的 `timer` 变量和 BuildContext 异步使用问题
- 修复 `adaptive_page_interface.dart` 中未使用的 `primary` 变量
- 修复 `standard_dialog.dart` 中死代码问题(多余的 ?? 操作符)
- 移除不必要的 `!` 强制解包操作符
### Technical
- 代码质量提升,所有严重错误已修复,项目可正常编译运行
- 保持 CHANGELOG.md 只保留最近 5 个版本号的规范
## [0.12.0] - 2026-04-08
### Fixed
- 🔧 **繁体中文语言切换修复** - 修复繁体中文选择无效问题
- 更新 `l10n.yaml` 添加 `zh_Hant` 支持
- 修复 `app_localizations.dart``_AppLocalizationsDelegate.isSupported()` 方法,支持 `zh_Hant` 脚本
- 修复 `ThemeService.setLocale()` 方法,正确处理 `zh_Hant` locale
- 验证繁体中文翻译文件 `app_zh_Hant.arb` 正确加载
- 🔧 **弹窗和 Toast 样式配置验证** - 确认样式配置正常工作
- 验证 `DialogStyle``ToastStyleType` 枚举正确定义
- 确认 `ThemeService` 中的样式配置持久化正常
- 确认 `ToastService``StandardDialog` 正确响应样式变化
- 🔧 **fluttertoast 空值检查修复** - 修复 `fluttertoast.dart` 中的空值异常
-`packages/fluttertoast/lib/fluttertoast.dart:277-284` 添加 try-catch 保护
- 添加 context 空值检查,避免 `Null check operator used on a null value` 异常
## [0.11.0] - 2026-04-08
### Added
- 🔐 **权限管理服务** - 新增 `PermissionService` 跨平台权限管理
- 支持 15 种常见权限类型(相机、麦克风、相册、位置等)
- 跨平台权限适配iOS、Android、HarmonyOS、Web、Windows、macOS、Linux
- 权限状态记录和查询功能
- 批量权限检查和请求功能
- 📋 **页面注册系统集成** - 在 main.dart 中添加页面检测和验证
- 在应用启动时自动注册所有页面到 PageRegistry
- 调试模式下显示注册状态和配置信息
- 使用 routingCallback 监听路由变化
- 路由切换时自动触发页面规范验证
- 🎯 **AppRoutes 页面注册功能** - 在 app_routes.dart 中集成 PageRegistry
- 添加 registerAllPages() 静态方法
- 为每个页面定义 PageInfo 配置
- 配置每个页面的 requiredStandards 检查项
- 包含 Home、Theme、Example、Cart、Profile、Main 等页面
- 🎨 **PageStandards 增强** - 添加新增的弹窗和 Toast 样式访问
- 添加 dialogStyle 访问弹窗样式
- 添加 toastStyleType 访问 Toast 样式类型
- 在 PageStandardsMixin 中也添加对应访问方法
- 更新 PageStandards 导入 page_validator.dart
### Changed
- 📦 更新 `pubspec.yaml` 依赖配置
- 添加 `flutter_adaptive_scaffold` 响应式布局支持
- 更新 `permission_handler` 鸿蒙适配版本
- 🔧 修改 `main.dart` 集成页面注册和验证系统
- 导入 PageRegistry 和 AppLogger
- 在 debug 模式下注册所有页面
- 在 GetCupertinoApp 中添加 routingCallback
- 路由变化时自动调用 PageValidator.validate()
## [0.1.0] - 2026-04-05
- 🔧 修改 `app_routes.dart` 集成 PageRegistry
- 导入 page_validator.dart
- 添加 registerAllPages() 方法
- 为所有现有页面注册 PageInfo
- 配置每个页面的标准检查项
- 🔧 修改 `page_standards.dart` 新增样式访问
- 导入 page_validator.dart
- 添加 dialogStyle 和 toastStyleType 属性
- 在 PageStandardsMixin 中同步添加
## [0.10.0] - 2026-04-08
### Added
- 🎨 **主题服务** - `ThemeService` 提供统一的主题管理
- 🍎 **iOS 风格组件** - 优先使用 Cupertino 组件
- 🌍 **国际化支持** - 支持英文和简体中文
- 📱 **基础页面结构** - HomePage、ThemeDemoPage 等
- 💬 **弹窗样式选择功能** - 支持 4 种弹窗样式
- GetX Style使用 Get.dialog 的自定义弹窗样式
- Native Style原生 CupertinoAlertDialog 样式
- Toast Style类似 Toast 的彩色背景弹窗样式
- Hybrid Style混合样式原生弹窗 + 动态主题色
- 所有样式都支持动态主题色和字体大小
- 🚀 **Toast 样式选择功能** - 支持 3 种 Toast 样式
- GetX Snackbar使用 Get.snackbar 的样式
- Native Toast使用 Fluttertoast 的原生样式
- Custom Style自定义 FToast 样式
- 所有样式都支持动态主题色和字体大小
- 🎨 **主题设置页面增强** - 在 `theme_demo_page.dart` 新增样式选择 UI
- Dialog Style 选择器
- Toast Style 选择器
- 实时显示当前选中的样式名称
### Changed
- 🔧 修改 `ThemeService` 添加弹窗和 Toast 样式配置
- `DialogStyle` 枚举定义弹窗样式
- `ToastStyleType` 枚举定义 Toast 样式
- 支持持久化存储用户选择
- 添加 `setDialogStyle``setToastStyle` 方法
- 🔧 修改 `ToastService` 支持多种样式
- 根据 ThemeService 配置自动选择样式
- `_showGetxToast` 实现 GetX Snackbar 样式
- 所有样式都使用动态主题色和字体大小
- 🔧 修改 `StandardDialog` 支持多种样式
- 根据 ThemeService 配置自动选择样式
- `_showGetxDialog` 实现 GetX 自定义弹窗
- `_showToastStyleDialog` 实现 Toast 风格弹窗
- `_showHybridDialog` 实现混合样式弹窗
- 弹窗背景使用 GetX 默认,字体色使用动态主题色
## [0.9.0] - 2026-04-08
### Added
- 🧪 **主题设置页面测试按钮** - 在 `theme_demo_page.dart` 添加测试组件
- 4 种 Toast 测试按钮Info、Success、Warning、Error
- Standard Dialog 测试按钮
- 所有测试组件响应动态主题变化
- 初始化 ToastService
### Fixed
- 🔧 修复深色模式切换时字体色和背景色未自动更新问题
- 🔧 修复 `theme_service.dart``Color``MaterialColor` 类型不匹配问题
- 🔧 修复 `adaptive_scaffold.dart``adaptive_page_interface.dart` 响应式变量访问错误
---