Files
flutterApp/lib/features/v2/my
Songzex 335c468aac 修复版本管理整包更新无法弹出的问题
完成集成新的登录接口的更换使用
完成集成用户的场站列表接口
完成开发设计选择场站项为全局属性
完成我的页面的个人信息的集成和详情页面的开发
完成设备页面的中无人机机场的列表接口对接入和个项页面的布局的优化
完成设备页面的中无人机机场的详情接口的对接和使用和页面的更新布局
2026-05-29 14:13:34 +08:00
..

我的页面模块

架构说明

采用清洁架构(Clean Architecture)四层划分:

1. Domain 层(领域层)

  • entities/ - 实体类(UserProfileEntity, MenuItemEntity)
  • repositories/ - 仓储接口(MyRepository)
  • usecases/ - 用例(GetMenuItemsUseCase, ToggleNightModeUseCase, ClearCacheUseCase)

2. Data 层(数据层)

  • models/ - 数据模型(UserProfileModel, MenuItemModel)
  • datasources/ - 数据源接口和实现
  • repositories/ - 仓储实现(MyRepositoryImpl)

3. Presentation 层(表现层)

  • states/ - 状态管理(MyState)
  • cubit/ - 业务逻辑(MyCubit)
  • pages/ - 页面(MyPage)
  • widgets/ - UI 组件(UserProfileCard, MenuItemCard)
  • constants/ - 常量定义(MyColors, MyDimensions)
  • routes/ - 路由配置(MyRoutes)

4. DI 层(依赖注入)

  • di/ - 依赖注入配置(MyDependencyInjector)

功能特性

  • 用户信息展示(头像、姓名、角色)
  • 菜单列表(个人信息、消息设置、离线缓存、夜间模式等)
  • 夜间模式切换
  • 缓存清除功能
  • 响应式状态管理(Cubit)

使用示例

import 'package:maibu_satabot_v2/features/v2/my/my.dart';

// 在路由配置中使用
GoRoute(
  path: 'my',
  name: 'my',
  builder: (context, state) => const MyPage(),
),

数据流

  1. 初始化: MyPage 通过 MyDependencyInjector 创建 MyCubit
  2. 加载数据: MyCubit 调用 UseCase 获取数据
  3. 状态更新: 数据通过 Entity → State 传递给 UI
  4. 用户交互: UI 触发 Cubit 方法,更新状态

依赖关系

Presentation → Domain ← Data
     ↓           ↓
   Cubit      UseCase
     ↓           ↓
   State     Repository