169 lines
4.6 KiB
Markdown
169 lines
4.6 KiB
Markdown
# 告警中心页面 - 依赖清单
|
||
|
||
## 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. 支持告警导出功能
|