4.6 KiB
4.6 KiB
告警中心页面 - 依赖清单
pubspec.yaml 依赖
已存在的依赖(本项目已有)
dependencies:
flutter:
sdk: flutter
# 状态管理
flutter_bloc: ^9.1.1
bloc: ^9.2.0
# 等价判断
equatable: ^2.0.8
# 函数式编程
fpdart: ^1.2.0
# 依赖注入
get_it: ^9.2.0
# 路由管理
go_router: ^17.0.1
# 网络请求
dio: ^5.9.0
新增依赖
无需新增任何依赖,所有功能均使用项目已有的稳定库。
文件结构
lib/features/v2/waring_center/
├── data/
│ ├── datasources/
│ │ ├── alarm_remote_datasource.dart # 远程数据源抽象
│ │ └── impl/
│ │ └── alarm_remote_datasource_impl.dart # 远程数据源实现(模拟数据)
│ ├── models/
│ │ └── alarm_model.dart # 数据模型
│ └── repositories/
│ └── alarm_repository_impl.dart # 仓储实现
├── domain/
│ ├── entities/
│ │ ├── alarm_entity.dart # 告警实体
│ │ └── alarm_count_entity.dart # 告警统计实体
│ ├── repositories/
│ │ └── alarm_repository.dart # 仓储接口
│ └── usecases/
│ ├── get_alarm_list_usecase.dart # 获取告警列表用例
│ └── get_alarm_count_usecase.dart # 获取告警统计用例
└── presentation/
├── bloc/
│ ├── alarm_cubit.dart # 状态管理 Cubit
│ └── alarm_state.dart # 状态定义
├── constants/
│ └── alarm_constants.dart # 全局常量(颜色、尺寸、枚举)
├── pages/
│ └── alarm_center_page.dart # 主页面
├── routes/
│ └── alarm_center_routes.dart # 路由配置
└── widgets/
├── alarm_tab_bar.dart # 筛选标签栏
├── alarm_count_card.dart # 告警统计卡片
├── alarm_item_card.dart # 告警项卡片
└── ai_diagnosis_card.dart # AI 诊断建议卡片
核心功能
1. 清洁架构四层结构
- Presentation(表现层): UI 展示、用户交互、Cubit、Pages、Widgets、State
- Domain(领域层): 核心业务逻辑、Entities、UseCases、Repository 接口
- Data(数据层): 数据获取存储、Models、Repository 实现、Datasources
- Core(核心层): 网络、日志、依赖注入 DI、错误处理、全局常量
2. 状态管理
- 使用 Cubit 进行状态管理
- 支持三种状态:加载中、加载成功、加载失败
- 支持下拉刷新
- 支持筛选标签切换
3. UI 组件
- 顶部导航栏(告警中心标题 + 筛选按钮)
- 一级标签栏(全部/未处理/已确认/已恢复)
- 告警统计卡片(2x2 网格布局)
- 告警列表(可滚动)
- AI 诊断建议卡片
4. 交互功能
- Tab 切换筛选告警
- 下拉刷新数据
- 点击筛选按钮弹出筛选弹窗
- 点击告警项跳转详情(占位)
- 点击 AI 诊断查看详情(占位)
全局常量配置
颜色
- 主色调:
Color(0xFF165DFF) - 高危色:
Color(0xFFF53F3F) - 中危色:
Color(0xFFFF7D00) - 低危色:
Color(0xFF00B42A) - 提示色:
Color(0xFF69b1ff) - 背景色:
Color(0xFFFFFFFF) - 主要文字:
Color(0xFF1D2129) - 次要文字:
Color(0xFF4E5969) - 辅助文字:
Color(0xFF86909C)
尺寸
- 通用圆角:
16.0 - 水平边距:
16.0 - 模块间距:
20.0 - 导航栏高度:
44.0
阴影
BoxShadow(
color: Color(0x0D000000),
blurRadius: 4,
offset: Offset(0, 2),
)
模拟数据
告警列表
- 逆变器 INV-001 通讯异常(高危,未确认)
- 汇流箱 SCB-003 过温告警(中危,未确认)
- 组件串 STR-024 功率异常(低危,已确认)
- 环境辐照度传感器离线(提示,已确认)
告警统计
- 未处理: 8
- 处理中: 2
- 已确认: 34
- 今日新增: 12
适配说明
- ✅ iOS 安全区适配(AnnotatedRegion)
- ✅ Android 全面屏适配
- ✅ 下拉刷新支持
- ✅ 响应式布局
后续扩展建议
- 对接真实 API 接口(替换 AlarmRemoteDataSourceImpl)
- 实现告警详情页
- 实现筛选功能(告警等级、时间、区域)
- 添加告警推送通知
- 支持批量处理告警
- 添加告警历史记录
- 支持告警导出功能