Files
Meshray-Manager/docs/MeshRay 项目 TODO 功能完善清单.md
T
2026-06-30 15:14:37 +08:00

14 KiB
Raw Blame History

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.gointernal/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 天)

目标: 让监控页面显示真实数据

任务:

  1. 取消 Monitor/Realtime.vue 所有注释(0.1 天)
  2. 添加错误处理和重试(0.1 天)
  3. 添加加载状态(0.1 天)
  4. 测试数据展示(0.2 天)

预期效果:

  • CPU 使用率实时更新
  • 内存使用量显示
  • 设备在线统计
  • 网络数量统计

第二阶段:Dashboard 完善(1 天)

目标: 完善 Dashboard 核心功能

任务:

  1. 实现 GetLogs API0.5 天)
  2. 实现 GetLinkDistribution API0.5 天)
  3. 集成 ECharts 图表(0.5 天)

预期效果:

  • 日志列表展示
  • 链路分布饼图
  • 设备趋势图表

第三阶段:网络管理功能(1.5 天)

目标: 完善网络管理核心功能

任务:

  1. ShareSeedModal 调用 API0.2 天)
  2. JoinNetworkModal 调用 API0.3 天)
  3. Network Detail 配置下载(0.5 天)
  4. Networks Pending 审批功能(0.5 天)

预期效果:

  • MeshSeed 正常生成和分享
  • 新设备可以加入网络
  • 配置文件可下载
  • 待审批列表可用

第四阶段:DDNS 和设备管理(1.5 天)

目标: 实现 DDNS 核心功能

任务:

  1. 硬件指纹采集(1 天)
  2. 连通性测试(0.5 天)
  3. 手动同步(0.3 天)
  4. 设备清理(0.5 天)

预期效果:

  • DDNS 正常更新
  • 硬件指纹唯一
  • 设备管理完善

第五阶段:Core 进程管理(2 天)

目标: 完善 Core 模块管理

任务:

  1. Ctr 进程管理(1 天)
  2. WireGuard 管理(1 天)
  3. 系统托盘优化(0.5 天)

预期效果:

  • Core 进程稳定运行
  • WireGuard 自动管理
  • 托盘功能完善

第六阶段:其他功能(1 天)

目标: 清理剩余 TODO

任务:

  1. FooterStatusBar 系统信息(0.3 天)
  2. NotificationDropdown 通知(0.3 天)
  3. Monitor 导出功能(0.3 天)
  4. 其他零散 TODO0.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 - 持续改进,追求卓越! 🎯