14 KiB
MeshRay 项目 TODO 功能完善清单
更新时间: 2026-03-24
TODO 总数: 48 处(后端 23 + 前端 25)
优先级分类: P1 高 (8) | P2 中 (15) | P3 低 (25)
📊 TODO 分布统计
| 模块 | TODO 数量 | 优先级 | 说明 |
|---|---|---|---|
| internal/ctr | 8 | P2-P3 | Engine 状态管理、Core 进程管理 |
| internal/service | 7 | P1-P2 | DDNS、设备管理核心功能 |
| internal/api/handler | 2 | P1 | Dashboard 日志和链路统计 |
| internal/tray | 2 | P3 | 系统托盘功能 |
| web/src/views/Monitor | 7 | P1 | 监控页面对接 |
| web/src/views/Networks | 9 | P2 | 网络管理功能 |
| web/src/components | 6 | P2 | 组件功能完善 |
| web/src/views/Dashboard | 1 | P3 | 图表集成 |
| 总计 | 48 | - | - |
🎯 P1 - 高优先级(8 个)
1. Dashboard 日志获取 API 🔥
位置: internal/api/handler/dashboard.go:53
当前代码:
// GetLogs 获取系统日志
func (h *DashboardHandler) GetLogs(c *gin.Context) {
// TODO: 实现日志获取
c.JSON(200, gin.H{"logs": []string{}})
}
需要实现:
- ✅ 从 lumberjack 日志文件读取
- ✅ 支持分页(page/size)
- ✅ 支持级别筛选(debug/info/warn/error)
- ✅ 支持时间范围筛选
- ✅ 返回最近 N 条日志
预期响应:
{
"data": {
"total": 100,
"logs": [
{
"level": "info",
"message": "Device connected",
"timestamp": "2026-03-24T10:00:00Z"
}
]
}
}
工作量: 0.5 天
2. Dashboard 链路分布统计 🔥
位置: internal/api/handler/dashboard.go:78
当前代码:
// GetLinkDistribution 获取链路分布数据
func (h *DashboardHandler) GetLinkDistribution(c *gin.Context) {
// TODO: 实现链路分布获取
c.JSON(200, gin.H{"distribution": []map[string]interface{}{}})
}
需要实现:
- ✅ 统计直连链路数量
- ✅ 统计中继链路数量
- ✅ 统计 TURN 链路数量
- ✅ 计算各类型占比
- ✅ 返回链路质量分布(延迟分段)
预期响应:
{
"data": {
"total_links": 50,
"by_type": {
"direct": 30,
"relay": 15,
"turn": 5
},
"by_latency": {
"<10ms": 20,
"10-50ms": 25,
">50ms": 5
}
}
}
工作量: 0.5 天
3. Monitor 实时页面 - CPU 监控 🔥
位置: web/src/views/Monitor/Realtime.vue:371
当前代码:
const loadCpuMetrics = async () => {
// TODO: 实现 CPU 监控 API 后调用
// const res = await request.get('/monitor/metrics')
// cpuUsage.value = res.data.cpu.usage_percent
}
状态: ✅ API 已实现 (GET /api/v1/monitor/metrics)
需要完成:
- ✅ 取消注释并调用 API
- ✅ 每 5 秒轮询更新
- ✅ 添加加载状态处理
- ✅ 错误处理和重试机制
工作量: 0.1 天(只需取消注释)
4. Monitor 实时页面 - 内存监控 🔥
位置: web/src/views/Monitor/Realtime.vue:391
当前代码:
const loadMemoryMetrics = async () => {
// TODO: 实现内存监控 API 后调用
// const res = await request.get('/monitor/metrics')
// memoryUsage.value = res.data.memory.alloc_mb
}
状态: ✅ API 已实现
需要完成:
- ✅ 取消注释并调用 API
- ✅ 格式化 MB 显示
- ✅ 添加趋势图表(可选)
工作量: 0.1 天
5. Monitor 实时页面 - 网络监控 🔥
位置: web/src/views/Monitor/Realtime.vue:411
当前代码:
const loadNetworkMetrics = async () => {
// TODO: 实现网络监控 API 后调用
}
需要实现:
- ✅ 调用
/monitor/metrics获取设备在线数 - ✅ 显示总设备数、在线数、离线数
- ✅ 添加网络总数统计
工作量: 0.1 天
6. Monitor 实时页面 - 业务监控 🔥
位置: web/src/views/Monitor/Realtime.vue:428
当前代码:
const loadBusinessMetrics = async () => {
// TODO: 实现业务监控 API 后调用
}
需要实现:
- ✅ 组网数量统计
- ✅ MeshSeed 使用统计
- ✅ 设备连接成功率
- ✅ 平均延迟统计
建议: 可以整合到 /monitor/metrics 或单独 API
工作量: 0.3 天
7. Monitor 实时页面 - 质量监控 🔥
位置: web/src/views/Monitor/Realtime.vue:446
当前代码:
const loadQualityMetrics = async () => {
// TODO: 实现质量监控 API 后调用
}
需要实现:
- ✅ 链路质量分布(延迟分段)
- ✅ 丢包率统计
- ✅ 带宽利用率
建议: 需要从 Core 模块采集数据
工作量: 0.5 天
8. Monitor 实时页面 - 切换统计 🔥
位置: web/src/views/Monitor/Realtime.vue:488
当前代码:
const loadSwitchStats = async () => {
// TODO: 实现切换统计 API 后调用
}
需要实现:
- ✅ 路径切换次数统计
- ✅ 切换原因分析
- ✅ 切换成功率
工作量: 0.3 天
🎯 P2 - 中优先级(15 个)
9. Networks Pending - 待审批列表
位置: web/src/views/Networks/Pending.vue (5 处 TODO)
TODO 列表:
- Line 115: 取消注释 API 调用
- Line 150: 调用批准 API
- Line 181: 调用 API 获取组网列表
- Line 249: 调用拒绝 API
- Line 269: 调用批量操作 API
- Line 283: 跳转详情页
需要实现:
- ✅ 后端提供待审批列表 API
- ✅ 批准/拒绝接口
- ✅ 前端调用并处理响应
工作量: 0.5 天
10. ShareSeedModal - MeshSeed 生成
位置: web/src/components/ShareSeedModal.vue:214
当前代码:
const generateMeshSeed = async () => {
// TODO: 调用 API 生成 MeshSeed
// const res = await request.post(`/networks/${networkId.value}/meshseeds`, form)
}
状态: ✅ API 已实现 (POST /api/v1/networks/:id/meshseeds)
需要完成:
- ✅ 取消注释并调用 API
- ✅ 处理返回的 MeshSeed URL
- ✅ 显示二维码
工作量: 0.2 天
11. JoinNetworkModal - MeshSeed 解析和加入
位置: web/src/components/JoinNetworkModal.vue (2 处 TODO)
TODO 列表:
- Line 112: 调用 API 解析 MeshSeed
- Line 146: 调用 API 提交加入
需要实现:
- ✅
POST /api/v1/networks/join/parse- 解析 MeshSeed - ✅
POST /api/v1/networks/join- 提交加入申请 - ✅ 前端调用并处理
工作量: 0.3 天
12. Network Detail - 配置生成
位置: web/src/views/Networks/Detail.vue (2 处 TODO)
TODO 列表:
- Line 919: 调用 API 生成配置
- Line 957: 实现下载逻辑
- Line 962: 实现编辑逻辑
- Line 1058: 加载拓扑数据
- Line 1104: 实现下载逻辑
状态: ⚠️ API 已实现但有占位符
需要完成:
- ✅ 后端实现真实的 GenerateDeviceConfig
- ✅ 前端调用并下载配置文件
- ✅ 添加编辑对话框
工作量: 0.5 天
13. FooterStatusBar - 系统信息
位置: web/src/components/FooterStatusBar.vue (2 处 TODO)
TODO 列表:
- Line 106: 调用 API
/api/v1/settings/system-info - Line 125: 连接 WebSocket
/ws/metrics
需要实现:
- ✅ 后端提供 system-info API
- ✅ WebSocket 推送 metrics 数据
- ✅ 前端连接并更新状态栏
工作量: 0.3 天
14. NotificationDropdown - 告警通知
位置: web/src/components/NotificationDropdown.vue:184
当前代码:
// TODO: 连接 WebSocket /ws/alerts 和 /ws/pending-join
需要实现:
- ✅ WebSocket 告警推送
- ✅ 待审批通知推送
- ✅ 实时角标更新
工作量: 0.3 天
15. Device Service - 设备清理
位置: internal/service/device.go:145-146
当前代码:
// TODO: 如果设备在线,需要先断开连接
// TODO: 清理相关路由和配置
需要实现:
- ✅ 停止设备对应的 WireGuard 进程
- ✅ 清理路由表配置
- ✅ 释放端口资源
工作量: 0.5 天
16. DDNS - 硬件指纹采集
位置: internal/service/ddns.go:67
当前代码:
// TODO: 实现真实的硬件指纹采集(CPU ID + 主板序列号 + MAC 地址)
需要实现:
- ✅ 跨平台硬件信息采集
- ✅ Windows: WMI 获取 CPU/主板
- ✅ Linux: dmidecode 或/sys 文件系统
- ✅ macOS: system_profiler
工作量: 1 天
17. DDNS - 连通性测试
位置: internal/service/ddns.go:262
当前代码:
// TODO: 实现真实的连通性测试(调用各 DNS 厂商 API)
需要实现:
- ✅ 阿里云 DNS API 调用
- ✅ 腾讯云 DNS API 调用
- ✅ Cloudflare DNS API 调用
- ✅ 验证 DDNS 记录是否生效
工作量: 0.5 天
18. DDNS - 手动同步
位置: internal/service/ddns.go:277
当前代码:
// TODO: 实现手动同步逻辑
需要实现:
- ✅ 用户触发手动同步
- ✅ 立即更新 DDNS 记录
- ✅ 返回同步结果
工作量: 0.3 天
🎯 P3 - 低优先级(25 个)
19. Ctr - Core 进程管理(8 个)
位置: internal/ctr/ctr.go 和 internal/ctr/interface.go
TODO 列表:
- Line 60: 启动 Watchdog 监控
- Line 76: 实现 Core 的停止方法
- Line 123: 实现 Engine 的停止方法
- Line 241: 实现 Engine.GetStatus() 方法
- Line 253-279: P3-1 阶段实现(5 处)
需要实现:
- ✅ Core 进程健康监控
- ✅ 自动重启机制
- ✅ 状态查询接口
工作量: 2 天
20. Ctr - WireGuard 管理(2 个)
位置: internal/ctr/wg_manager.go
TODO 列表:
- Line 104: 实现 wireguard-go 进程管理
- Line 201: 实现平台特定的网络配置
需要实现:
- ✅ 启动/停止 wireguard-go
- ✅ Windows: 安装 TUN 驱动
- ✅ Linux: 配置 iptables/NAT
- ✅ macOS: 配置 pf 防火墙
工作量: 2 天
21. Tray - 系统托盘(2 个)
位置: internal/tray/tray.go
TODO 列表:
- Line 113: 实现重启逻辑
- Line 127: 检查服务状态并更新菜单
需要实现:
- ✅ 右键菜单重启功能
- ✅ 定期检查服务状态
- ✅ 动态更新菜单项
工作量: 0.5 天
22. Dashboard - ECharts 图表(1 个)
位置: web/src/views/Dashboard.vue:153
当前代码:
<!-- TODO: 集成 ECharts 图表 -->
需要实现:
- ✅ 安装 echarts
- ✅ 添加设备趋势图
- ✅ 添加链路分布饼图
- ✅ 添加延迟折线图
工作量: 0.5 天
23. Monitor - 导出功能(1 个)
位置: web/src/views/Monitor/Realtime.vue:526
当前代码:
const exportMetrics = () => {
// TODO: 实现导出逻辑
}
需要实现:
- ✅ 导出为 CSV 格式
- ✅ 导出为 JSON 格式
- ✅ 导出为 PDF 报告(可选)
工作量: 0.3 天
📋 实施计划
第一阶段:Monitor 页面对接(0.5 天)
目标: 让监控页面显示真实数据
任务:
- ✅ 取消 Monitor/Realtime.vue 所有注释(0.1 天)
- ✅ 添加错误处理和重试(0.1 天)
- ✅ 添加加载状态(0.1 天)
- ✅ 测试数据展示(0.2 天)
预期效果:
- CPU 使用率实时更新
- 内存使用量显示
- 设备在线统计
- 网络数量统计
第二阶段:Dashboard 完善(1 天)
目标: 完善 Dashboard 核心功能
任务:
- ✅ 实现 GetLogs API(0.5 天)
- ✅ 实现 GetLinkDistribution API(0.5 天)
- ✅ 集成 ECharts 图表(0.5 天)
预期效果:
- 日志列表展示
- 链路分布饼图
- 设备趋势图表
第三阶段:网络管理功能(1.5 天)
目标: 完善网络管理核心功能
任务:
- ✅ ShareSeedModal 调用 API(0.2 天)
- ✅ JoinNetworkModal 调用 API(0.3 天)
- ✅ Network Detail 配置下载(0.5 天)
- ✅ Networks Pending 审批功能(0.5 天)
预期效果:
- MeshSeed 正常生成和分享
- 新设备可以加入网络
- 配置文件可下载
- 待审批列表可用
第四阶段:DDNS 和设备管理(1.5 天)
目标: 实现 DDNS 核心功能
任务:
- ✅ 硬件指纹采集(1 天)
- ✅ 连通性测试(0.5 天)
- ✅ 手动同步(0.3 天)
- ✅ 设备清理(0.5 天)
预期效果:
- DDNS 正常更新
- 硬件指纹唯一
- 设备管理完善
第五阶段:Core 进程管理(2 天)
目标: 完善 Core 模块管理
任务:
- ✅ Ctr 进程管理(1 天)
- ✅ WireGuard 管理(1 天)
- ✅ 系统托盘优化(0.5 天)
预期效果:
- Core 进程稳定运行
- WireGuard 自动管理
- 托盘功能完善
第六阶段:其他功能(1 天)
目标: 清理剩余 TODO
任务:
- ✅ FooterStatusBar 系统信息(0.3 天)
- ✅ NotificationDropdown 通知(0.3 天)
- ✅ Monitor 导出功能(0.3 天)
- ✅ 其他零散 TODO(0.1 天)
预期效果:
- 状态栏显示完整信息
- 实时通知推送
- 数据导出功能
📊 总结
TODO 分类统计
| 类别 | 数量 | 工作量 | 优先级 |
|---|---|---|---|
| 监控 API 对接 | 7 | 0.5 天 | P1 |
| Dashboard 功能 | 3 | 1 天 | P1-P3 |
| 网络管理 | 9 | 1.5 天 | P2 |
| DDNS 功能 | 4 | 1.5 天 | P2 |
| 设备管理 | 2 | 0.5 天 | P2 |
| Core 管理 | 10 | 2 天 | P3 |
| 其他功能 | 13 | 1.5 天 | P2-P3 |
| 总计 | 48 | 8.5 天 | - |
推荐实施顺序
第一周(3 天):
- Day 1: Monitor 页面对接 ✅
- Day 2: Dashboard 日志和链路统计 ✅
- Day 3: 网络管理功能完善 ✅
第二周(3 天):
- Day 4: DDNS 硬件指纹和测试 ✅
- Day 5: 设备管理和清理 ✅
- Day 6: Core 进程管理(上)✅
- Day 7: Core 进程管理(下)✅
第三周(2.5 天):
- Day 8: 系统托盘和状态栏 ✅
- Day 9: 通知和导出功能 ✅
- Day 10: 缓冲和测试 ✅
预期成果
完成后:
- ✅ 监控页面完整可用
- ✅ Dashboard 数据丰富
- ✅ 网络管理功能完善
- ✅ DDNS 正常工作
- ✅ Core 进程稳定
- ✅ 用户体验流畅
TODO 清理率: 100%
项目完成度: 99/100
状态: 📋 TODO 清单已整理完毕
下一步: 按优先级逐步实施
预计完成时间: 2026-04-07
MeshRay - 持续改进,追求卓越! ✨🎯