Files
SecMPS/warehouse/docs/入侵报警组件/DESIGN_入侵报警组件.md
2026-05-15 23:22:48 +08:00

95 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 入侵报警组件设计文档
## 整体架构图
```mermaid
flowchart TD
A[用户操作] --> B[AlarmRecord组件]
B --> C[时间段选择器]
B --> D[告警数据列表]
B --> E[数据获取逻辑]
C --> E
E --> D
D --> F[告警图片展示]
```
## 分层设计和核心组件
### 1. 组件层
- **AlarmRecord.vue**: 主组件,包含整体布局和逻辑控制
### 2. UI组件层
- **el-date-picker**: 时间段选择器
- **el-table**: 告警数据列表
- **el-image**: 告警图片展示
- **el-button**: 操作按钮
- **el-loading**: 加载状态显示
### 3. 数据处理层
- **数据获取函数**: 模拟API调用获取告警数据
- **数据处理函数**: 处理和格式化数据
## 模块依赖关系图
```mermaid
graph LR
AlarmRecord --> ElementPlus
AlarmRecord --> Vue
AlarmRecord --> MockData
```
## 接口契约定义
### 组件属性
无特定属性要求,作为独立组件使用
### 数据结构定义
```typescript
interface AlarmRecord {
id: string; // 告警ID
alarmTime: string; // 告警时间
deviceName: string; // 来源设备
imageUrl: string; // 告警图片URL
status?: string; // 告警状态(可选)
location?: string; // 告警位置(可选)
}
```
### 方法定义
```typescript
// 获取告警数据
const fetchAlarmData = async (startTime: string, endTime: string): Promise<AlarmRecord[]> => {
// 实现数据获取逻辑
};
// 刷新数据
const refreshData = (): void => {
// 实现数据刷新逻辑
};
```
## 数据流向图
```mermaid
sequenceDiagram
participant User
participant Component as AlarmRecord组件
participant DataFetch as 数据获取函数
participant Table as 数据列表
User->>Component: 选择时间段
Component->>Component: 触发refreshData
Component->>DataFetch: 调用fetchAlarmData
DataFetch-->>Component: 返回告警数据
Component-->>Table: 更新表格数据
Table-->>User: 显示告警列表
```
## 异常处理策略
1. **数据获取失败**: 显示错误提示使用mock数据
2. **图片加载失败**: 显示默认占位图
3. **时间段选择无效**: 给出提示信息
4. **组件加载异常**: 显示友好的错误界面