# CasualtySightPlus 界面重设计和数据库集成项目任务计划

## 项目概述

**项目名称**: CasualtySightPlus战场探索系统界面重设计  
**技术栈**: Qt 5.15 C++, MySQL数据库, QML, Web集成  
**项目目标**: 基于现有代码进行大规模界面重设计，优化用户体验，集成MySQL数据库  
**重要性**: 作业项目，对学业成绩至关重要  

## 需求分析

### 界面设计需求
1. **保留核心元素**: UBEES logo和项目名称必须保留
2. **界面现代化**: 参考设计图进行现代化改造，但不完全照搬
3. **设备列表重设计**: 按照第三张参考图样式重新设计设备卡片
4. **顶部导航优化**: 改进或重新设计顶部导航栏
5. **响应式布局**: 确保界面在不同分辨率下正常显示

### 数据库集成需求
1. **MySQL连接**: 从当前的SQLite迁移到MySQL
2. **表结构设计**: 为UAV、Dog、Injury创建规范的数据库表
3. **数据持久化**: 所有设备和伤员信息持久化存储
4. **实时同步**: 界面与数据库数据实时同步

### 功能增强需求
1. **设备状态显示**: 实时显示设备在线状态和连接质量
2. **地图集成优化**: 优化现有地图显示功能
3. **用户体验提升**: 简化操作流程，提高易用性

## 任务分解

### Phase 1: 项目准备和环境配置 (优先级: 高)

#### 1.1 项目结构分析和规划
- [x] 分析现有代码架构和UI结构
- [x] 分析现有数据库设计和接口
- [x] 制定新的项目结构规划
- [x] 确定重构范围和影响评估
- [x] 完成项目结构重构，实现模块化架构

#### 1.2 开发环境准备
- [x] MySQL数据库环境搭建和配置
- [x] Qt MySQL驱动配置验证
- [x] 开发工具和依赖包确认
- [x] 版本控制分支策略制定和实施

### Phase 2: 数据库设计和集成 (优先级: 高)

#### 2.1 数据库架构设计
- [x] 设计UAV设备表结构 (uav_devices)
- [x] 设计Dog机器人表结构 (dog_devices)  
- [x] 设计统一设备表结构 (devices) - 采用统一管理架构
- [x] 设计系统配置表结构 (system_config)
- [x] 设计操作日志表结构 (device_operation_logs)

#### 2.2 数据库连接层重构
- [x] 创建MySQL连接管理器类
- [x] 重构UAVDatabase类，支持MySQL
- [x] 重构DogDatabase类，支持MySQL
- [x] 实现统一设备管理模式
- [x] 实现单例模式数据库管理器

#### 2.3 数据迁移和兼容性
- [x] 创建数据库初始化脚本 (database_schema.sql)
- [x] 实现数据库表自动创建功能
- [x] 实现向下兼容性支持
- [x] 完成数据库层重构和测试

### Phase 3: 界面架构重设计 (优先级: 高)

#### 3.1 主界面框架重构
- [x] 重新设计主窗口布局结构
- [x] 优化三栏式布局，提升比例和间距
- [x] 重新设计顶部标题栏，保留UBEES品牌
- [x] 实现响应式布局适配

#### 3.2 左侧设备管理面板重设计
- [x] 重新设计设备管理面板标题区域
- [x] 实现新的设备卡片组件设计
- [x] 添加设备状态指示器和连接质量显示
- [x] 实现设备分类和过滤功能
- [x] 添加设备搜索功能

#### 3.3 设备卡片组件开发
- [x] 设计设备卡片UI组件 (参考第三张图样式)
- [x] 实现设备状态动态显示 (在线/离线/信号强度)
- [x] 添加设备操作按钮和快速操作菜单
- [x] 实现设备信息悬浮提示
- [x] 添加设备卡片动画效果

### Phase 4: 地图和可视化组件优化 (优先级: 中) ✅ **已完成**

#### 4.1 地图组件重构
- [x] 优化现有WebEngineView地图集成
- [x] 改进地图控制按钮设计和布局
- [x] 实现设备位置实时更新显示
- [x] 添加地图图层切换功能
- [x] 实现地图标记点击交互

#### 4.2 实时数据可视化
- [x] 实现设备状态实时监控面板
- [x] 添加数据统计图表显示
- [x] 添加系统运行状态指示器

### Phase 5: 功能模块重构和增强 (优先级: 中) 🚧 **进行中**

#### 5.1 系统日志功能开发 🚧 **当前任务**
- [x] **UI重构**: 删除重复的设备管理按钮，为系统日志让出空间
- [ ] **组件开发**: 创建SystemLogPanel组件和SystemLogger单例管理器
- [ ] **界面集成**: 使用QSplitter实现日志与设备管理的35%:65%空间分配
- [ ] **日志功能**: 实现多级别日志记录、格式化显示、过滤搜索功能
- [ ] **系统集成**: 在关键操作点集成日志记录（设备操作、数据库、地图交互）

#### 5.2 设备管理功能增强
- [ ] 重构添加设备对话框，提升用户体验
- [ ] 实现设备批量管理功能
- [ ] 添加设备配置导入/导出功能
- [ ] 实现设备连接测试功能

#### 5.3 系统功能模块
- [ ] 实现系统设置管理界面
- [ ] 添加用户权限管理功能
- [x] **已集成**: 操作日志记录功能（通过系统日志实现）
- [ ] 添加系统备份和恢复功能

### Phase 6: 样式和主题系统 (优先级: 中)

#### 6.1 UI主题系统设计
- [ ] 设计统一的颜色方案和视觉规范
- [ ] 创建自定义QSS样式文件
- [ ] 实现深色主题支持
- [ ] 添加主题切换功能

#### 6.2 图标和资源优化
- [ ] 优化现有图标资源
- [ ] 设计新的状态指示图标
- [ ] 实现矢量图标支持
- [ ] 优化资源加载性能

### Phase 7: 性能优化和测试 (优先级: 中)

#### 7.1 性能优化
- [ ] 优化数据库查询性能
- [ ] 实现UI渲染性能优化
- [ ] 优化内存使用和资源管理
- [ ] 实现异步数据加载

#### 7.2 质量保证和测试
- [ ] 编写单元测试用例
- [ ] 进行界面功能测试
- [ ] 数据库操作测试
- [ ] 跨平台兼容性测试
- [ ] 性能压力测试

### Phase 8: 文档和部署 (优先级: 低)

#### 8.1 技术文档
- [ ] 编写数据库设计文档
- [ ] 创建API接口文档
- [ ] 编写用户操作手册
- [ ] 制作系统部署指南

#### 8.2 项目交付准备
- [ ] 准备演示环境
- [ ] 制作项目演示材料
- [ ] 编写项目总结报告
- [ ] 准备答辩材料

## 技术实现细节

### 关键技术决策

#### 数据库设计
```sql
-- UAV设备表
CREATE TABLE uav_devices (
    id VARCHAR(50) PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    state INT DEFAULT 0,
    ip VARCHAR(15),
    port INT,
    longitude DOUBLE,
    latitude DOUBLE,
    signal_strength INT DEFAULT 0,
    last_heartbeat TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Dog机器人表
CREATE TABLE dog_devices (
    id VARCHAR(50) PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    state INT DEFAULT 0,
    ip VARCHAR(15),
    port INT,
    longitude DOUBLE,
    latitude DOUBLE,
    signal_strength INT DEFAULT 0,
    last_heartbeat TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);


```

#### 界面设计规范
- **主色调**: 深蓝灰色系 (#18212D, #1A252F)
- **强调色**: 青蓝色 (#52C2F2)
- **状态色**: 绿色(在线) #00FF7F, 黄色(警告) #FFD700, 红色(离线) #FF4444
- **字体**: 系统默认字体，代码区域使用等宽字体
- **间距**: 遵循8px网格系统




## 风险评估和应对策略

### 主要风险
1. **数据库迁移风险**: SQLite到MySQL的迁移可能出现数据丢失
2. **界面兼容性风险**: 不同Qt版本可能导致界面显示异常
3. **性能风险**: 大量设备数据可能导致界面卡顿

### 应对策略
1. **备份策略**: 每个阶段结束后创建完整备份
2. **增量开发**: 分阶段实现，确保每个阶段都有可工作的版本
3. **测试驱动**: 关键功能优先编写测试用例

## 时间规划

### 总体时间安排 (预估4-5周)
- **Week 1**: Phase 1-2 (项目准备和数据库设计) - ✅ **已完成**
- **Week 2**: Phase 3 (界面架构重设计) - ✅ **已完成**
- **Week 3**: Phase 4 (地图和可视化组件优化) - ✅ **已完成**
- **Week 4**: Phase 5-6 (功能模块重构和样式优化) - 🚧 **准备开始**
- **Week 5**: Phase 7-8 (测试、文档和交付准备)

### 里程碑
- **里程碑1**: 数据库集成完成，基本CRUD操作正常 - ✅ **已达成**
- **里程碑2**: 新界面框架搭建完成，设备列表重设计完成 - ✅ **已达成**
- **里程碑3**: 核心功能迁移完成，系统可正常运行 - ✅ **已达成**
- **里程碑4**: 项目优化完成，准备交付 - 🚧 **准备开始**

## 成功标准

### 功能标准
- [ ] 所有原有功能正常工作
- [ ] 新的设备卡片设计实现并正常显示
- [ ] MySQL数据库集成成功，数据持久化正常
- [ ] 界面响应流畅，用户体验良好

### 质量标准
- [ ] 代码结构清晰，注释完整
- [ ] 数据库操作安全，无SQL注入风险
- [ ] 界面美观现代，符合设计要求
- [ ] 系统稳定可靠，无崩溃和内存泄漏

### 交付标准
- [ ] 完整的可运行系统
- [ ] 完善的技术文档
- [ ] 演示用的测试数据
- [ ] 项目总结和技术报告

## 项目进度总结

### Phase 1 完成情况 ✅
**完成时间**: 2024年12月
**主要成果**:
- 完成项目结构重构，从单一目录结构转换为模块化架构
- 实现了 `src/`, `include/`, `forms/`, `doc/` 的清晰分离
- 建立了完整的项目文档体系和开发规范
- 完成代码规范制定 (`代码规范.md`) 和项目配置 (`CLAUDE.md`)

### Phase 2 完成情况 ✅
**完成时间**: 2024年12月
**主要成果**:
- 成功设计并实现统一设备管理数据库架构
- 完成数据库层重构，支持 UAV 和机器狗的统一管理
- 实现单例模式的数据库管理器，提升系统稳定性
- 创建完整的数据库初始化脚本和迁移策略
- 建立向下兼容性支持，保证现有代码正常运行

**技术亮点**:
- 采用统一 `devices` 表，通过 `device_type` 字段区分设备类型
- 实现数据库连接池和事务管理
- 创建完善的操作日志系统

### Phase 3 完成情况 ✅
**完成时间**: 2024年12月19日
**主要成果**:
- 成功设计并实现现代化设备卡片界面组件
- 完成DeviceCard和DeviceListPanel两个核心UI组件
- 实现设备状态实时显示、搜索过滤、操作控制等功能
- 建立组件化界面架构，提升用户体验和代码可维护性
- 创建完整的技术设计文档和实现方案

**技术亮点**:
- 采用Qt组件化设计，支持设备卡片的动态管理
- 实现军用风格的现代化界面设计
- 建立事件驱动的架构，支持松耦合的组件通信
- 完整的状态指示系统和交互反馈机制

### 当前状态 🚧
**当前阶段**: Phase 5 - 功能模块重构和增强 🚧 **进行中**
**开始日期**: 2024年12月21日
**进展情况**: Phase 4已完全完成，开始Phase 5系统日志功能开发

**Phase 4 最终成果** (2024年12月19日):
✅ **组件集成完成**: DeviceListPanel已成功集成到MainWindow左侧面板
✅ **设备卡片显示**: 4个测试设备（2个无人机+2个机器狗）正常显示
✅ **过滤功能**: 设备搜索和分类过滤功能正常工作
✅ **地图加载**: Web地图和QML地图切换功能正常运行
✅ **界面响应**: 所有UI交互功能运行稳定
✅ **地图设备标记**: 实现设备在地图上的自动标记显示
✅ **设备定位功能**: 点击设备卡片定位按钮可在地图上聚焦设备位置
✅ **设备图标系统**: 不同设备类型显示不同图标（无人机/机器狗）
✅ **状态色彩显示**: 根据设备状态显示不同颜色（在线/警告/离线）

**Phase 5 最新进展** (2024年12月21日):
🚧 **UI重构开始**: 开始系统日志功能开发，移除重复的设备管理按钮
✅ **按钮清理完成**: 成功删除MainWindow中4个重复的设备管理按钮
✅ **空间预留**: 在左侧面板为系统日志预留350px垂直空间
🚧 **组件开发中**: 准备创建SystemLogPanel和SystemLogger组件
🎯 **目标架构**: 35%系统日志 + 65%设备管理的垂直分割布局

**Phase 4 重大里程碑达成** ✅:
- 🎯 **设备-地图集成**: 成功实现设备列表与地图的双向交互
- 🎯 **可视化增强**: 地图标记系统支持实时设备状态显示
- 🎯 **用户体验提升**: 一键定位功能让设备管理更直观
- 🎯 **JavaScript-Qt集成**: 完整的WebEngineView与JavaScript交互系统
- 🎯 **设备标记系统**: 自动化设备标记添加和状态更新机制

### Phase 4 技术成果总结
- **地图技术栈**: WebEngineView + 高德地图API + JavaScript交互
- **设备标记功能**: `addDeviceMarker()`, `removeDeviceMarker()`, `focusOnDevice()`
- **实时状态显示**: 设备状态色彩编码（在线/警告/离线）
- **设备类型图标**: 无人机和机器狗不同图标显示系统
- **交互体验**: 点击设备卡片自动聚焦到地图位置

### Phase 5 系统日志功能开发计划

#### 当前进展 🚧
1. ✅ **UI空间预留**: 删除重复按钮，为系统日志预留350px空间
2. 🚧 **组件架构设计**: SystemLogPanel + SystemLogger单例设计
3. 📋 **界面开发**: 实现紧凑军用风格的日志显示界面
4. 📋 **功能实现**: 多级别日志、格式化、过滤、搜索功能
5. 📋 **布局集成**: QSplitter实现35%:65%垂直分割
6. 📋 **系统集成**: 在关键操作点添加日志记录

#### 系统日志功能规格
- **日志级别**: Info, Warning, Error, Success, Debug
- **显示特性**: 时间戳、颜色编码、图标标识
- **交互功能**: 清空、暂停/恢复、级别过滤
- **性能优化**: 行数限制、内存管理、异步更新
- **集成点**: 设备操作、数据库、地图交互、错误处理

### 长期规划
6. 📋 **硬件集成准备**: 为后续硬件设备接入做接口准备  
7. 📋 **Phase 6样式优化**: 主题系统和视觉规范完善

---

**项目状态**: 🟢 **健康** - Phase 1-4 全部按计划完成，为后续开发奠定了坚实基础
**技术债务**: 最小化 - 重构过程中已解决了大部分架构问题
**下一里程碑**: 里程碑3 - 核心功能迁移完成，系统可正常运行 ✅ **已达成**
**当前里程碑**: 里程碑4 - 项目优化完成，准备交付 🚧 **准备开始**

**备注**: 此任务计划将根据实际开发进度和需求变化进行动态调整。每个阶段完成后需要进行review和调整下一阶段的任务安排。