# 视频监控改造 - 设计文档 ## 1. 架构概述 ### 1.1 系统架构图 ```mermaid flowchart TD A[用户] --> B[VideoWall.vue] B --> C[轮巡版块] B --> D[追踪版块] B --> E[特情版块] C --> F[宫格布局] D --> G[一主六副布局] E --> H[左侧一主六副布局] E --> I[右侧特情处置预案] J[外部事件/API] --> B B --> K[状态管理] ``` ### 1.2 核心组件关系 | 组件名称 | 功能描述 | 依赖关系 | |---------|---------|---------| | VideoWall.vue | 视频监控主组件 | 轮巡版块、追踪版块、特情版块 | | 轮巡版块 | 支持多种宫格排列方式 | 宫格布局组件 | | 追踪版块 | 一主六副布局 | 视频画面组件 | | 特情版块 | 左右分栏布局 | 视频画面组件、特情处置预案组件 | | 宫格布局组件 | 动态宫格布局 | 视频画面组件 | | 视频画面组件 | 显示监控画面 | 摄像头数据 | | 特情处置预案组件 | 显示特情处置预案 | 预案数据 | ## 2. 核心组件设计 ### 2.1 VideoWall.vue(视频监控主组件) #### 2.1.1 功能设计 - **版块切换**:根据状态自动切换三个版块 - **状态管理**:管理视频监控系统的状态 - **事件处理**:处理外部事件和API调用 - **原有功能兼容**:保持原有视频墙的操作方式 #### 2.1.2 状态管理 ```javascript // 核心状态 const currentSection = ref('patrol') // 当前版块:patrol(轮巡), track(追踪), emergency(特情) const selectedLayout = ref('3x3') // 轮巡版块的布局选择 const cameras = ref([]) // 摄像头列表 const emergencyPlan = ref({}) // 特情处置预案数据 ``` #### 2.1.3 核心方法 ```javascript // 切换版块 const switchSection = (section) => { currentSection.value = section } // 处理外部事件 const handleExternalEvent = (event) => { if (event.type === 'abnormal') { switchSection('track') } else if (event.type === 'emergency') { switchSection('emergency') } else { switchSection('patrol') } } ``` ### 2.2 轮巡版块设计 #### 2.2.1 功能设计 - **布局选择**:支持多种宫格排列方式(3x3, 3x4, 4x4, 5x5等) - **视频显示**:根据选择的布局显示对应数量的视频画面 - **交互操作**:支持摄像头选择、控制等操作 #### 2.2.2 布局实现 ```html