# 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结构
- [ ] 分析现有数据库设计和接口
- [ ] 制定新的项目结构规划
- [ ] 确定重构范围和影响评估

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

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

#### 2.1 数据库架构设计
- [ ] 设计UAV设备表结构 (uav_devices)
- [ ] 设计Dog机器人表结构 (dog_devices)  
- [ ] 设计Injury伤员表结构 (injury_records)
- [ ] 设计系统配置表结构 (system_config)
- [ ] 设计用户会话表结构 (user_sessions)

#### 2.2 数据库连接层重构
- [ ] 创建MySQL连接管理器类
- [ ] 重构UAVDatabase类，支持MySQL
- [ ] 重构DogDatabase类，支持MySQL
- [ ] 重构InjuryDatabase类，支持MySQL
- [ ] 实现连接池和事务管理

#### 2.3 数据迁移和兼容性
- [ ] 创建数据库初始化脚本
- [ ] 实现数据库表自动创建功能
- [ ] 设计数据迁移策略
- [ ] 编写数据库备份和恢复功能

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

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

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

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

### Phase 4: 地图和可视化组件优化 (优先级: 中)

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

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

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

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

#### 5.2 伤员管理模块优化
- [ ] 重构伤员信息管理界面
- [ ] 实现伤员信息快速录入
- [ ] 添加伤员状态跟踪功能
- [ ] 实现伤员信息报表生成

#### 5.3 系统功能模块
- [ ] 实现系统设置管理界面
- [ ] 添加用户权限管理功能
- [ ] 实现操作日志记录功能
- [ ] 添加系统备份和恢复功能

### 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
);

-- 伤员记录表
CREATE TABLE injury_records (
    id VARCHAR(50) PRIMARY KEY,
    rank INT,
    longitude DOUBLE,
    latitude DOUBLE,
    flag INT DEFAULT 1,
    severity INT DEFAULT 0,
    description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```

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

#### 设备卡片设计示例
```
┌─────────────────────────────┐
│ 🚁 侦察机-01        [●在线] │
│ IP: 192.168.1.101           │
│ N39.90, E116.40             │
│ 信号: ████████░░ 80%        │
│ [详情] [控制] [定位]        │
└─────────────────────────────┘
```

## 风险评估和应对策略

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

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

## 时间规划

### 总体时间安排 (预估4-5周)
- **Week 1**: Phase 1-2 (项目准备和数据库设计)
- **Week 2**: Phase 3 (界面架构重设计)  
- **Week 3**: Phase 4-5 (功能模块重构)
- **Week 4**: Phase 6-7 (样式优化和测试)
- **Week 5**: Phase 8 (文档和交付准备)

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

## 成功标准

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

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

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

---

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