# 告警中心页面 - 依赖清单 ## pubspec.yaml 依赖 ### 已存在的依赖(本项目已有) ```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` ### 阴影 ```dart BoxShadow( color: Color(0x0D000000), blurRadius: 4, offset: Offset(0, 2), ) ``` --- ## 模拟数据 ### 告警列表 1. 逆变器 INV-001 通讯异常(高危,未确认) 2. 汇流箱 SCB-003 过温告警(中危,未确认) 3. 组件串 STR-024 功率异常(低危,已确认) 4. 环境辐照度传感器离线(提示,已确认) ### 告警统计 - 未处理: 8 - 处理中: 2 - 已确认: 34 - 今日新增: 12 --- ## 适配说明 - ✅ iOS 安全区适配(AnnotatedRegion) - ✅ Android 全面屏适配 - ✅ 下拉刷新支持 - ✅ 响应式布局 --- ## 后续扩展建议 1. 对接真实 API 接口(替换 AlarmRemoteDataSourceImpl) 2. 实现告警详情页 3. 实现筛选功能(告警等级、时间、区域) 4. 添加告警推送通知 5. 支持批量处理告警 6. 添加告警历史记录 7. 支持告警导出功能