Files
Xboard/.helloagents/archive/2026-04/202604281625_admin-frontend-node-traffic-hover/tasks.md
T
yinjianm 1739f7a2f9 feat(api): 新增节点流量悬浮详情与即时自动上线同步
为 server/manage/getNodes 返回节点级今日、本月与累计流量统计,
并在节点管理页名称悬浮层展示上行、下行和合计流量。

同时为自动上线补齐单节点同步入口,在管理端保存、
批量更新以及 REST/WS 心跳后立即同步 show 状态,
避免复制节点后开启自动上线仍需等待定时任务。

另优化管理端前端 Docker 发布流程,默认仅构建 amd64,
并收敛 BuildKit 缓存导出以缩短发布时间
2026-04-28 16:51:35 +08:00

86 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务清单: admin-frontend-node-traffic-hover
> **@status:** completed | 2026-04-28 16:48
```yaml
@feature: admin-frontend-node-traffic-hover
@created: 2026-04-28
@status: in_progress
@mode: R2
```
## LIVE_STATUS
```json
{"status":"in_progress","completed":5,"failed":0,"pending":0,"total":5,"percent":100,"current":"代码实现、知识库同步与前端构建验证已完成;PHP CLI 不可用,后端语法检查未执行","updated_at":"2026-04-28 16:34:10"}
```
## 进度概览
| 完成 | 失败 | 跳过 | 总数 |
|------|------|------|------|
| 5 | 0 | 0 | 5 |
---
## 任务列表
### 1. 后端接口
- [√] 1.1 在 `app/Http/Controllers/V2/Admin/Server/ManageController.php` 中为 `getNodes` 批量挂载节点流量统计
- 预期变更: 基于当前节点 ID 集合批量聚合 `StatServer` 的今日、本月、总计上行/下行/合计,并写入 `traffic_stats`
- 完成标准: 每个节点响应都包含 `traffic_stats.today/month/total.upload/download/total`
- 验证方式: `php -l app/Http/Controllers/V2/Admin/Server/ManageController.php`
- depends_on: []
### 2. 前端数据模型与工具
- [√] 2.1 在 `admin-frontend/src/types/api.d.ts` 中扩展节点流量统计类型
- 预期变更: 新增节点流量统计接口,并将其挂到 `AdminNodeItem`
- 完成标准: TypeScript 能识别 `row.traffic_stats.today.upload` 等字段
- 验证方式: `npm run build`
- depends_on: [1.1]
- [√] 2.2 在 `admin-frontend/src/utils/nodes.ts` 中新增节点流量格式化与 hover 详情数据构造
- 预期变更: 提供字节自适应格式化和 `today/month/total` 三组详情行
- 完成标准: null、undefined、非数字输入不会输出 `NaN`
- 验证方式: `npm run build`
- depends_on: [2.1]
### 3. 节点页展示
- [√] 3.1 在 `admin-frontend/src/views/nodes/NodesView.vue` 中把节点名称区域改为 hover 流量详情卡
- 预期变更: 节点名称 hover 时显示今日、本月、累计的上行、下行和合计,样式遵循 `apple/DESIGN.md`
- 完成标准: 不影响节点状态标签、墙状态标签、类型展示和行级操作
- 验证方式: `npm run build`,必要时本地预览人工核对
- depends_on: [2.2]
### 4. 文档与验收
- [√] 4.1 同步知识库并执行构建/语法验证
- 预期变更: 更新 `.helloagents/modules/admin-frontend.md``CHANGELOG.md`,记录本次节点 hover 流量详情能力
- 完成标准: 知识库与代码事实一致;验证命令完成并记录结果
- 验证方式: `npm run build``php -l app/Http/Controllers/V2/Admin/Server/ManageController.php`
- depends_on: [3.1]
---
## 执行日志
| 时间 | 任务 | 状态 | 备注 |
|------|------|------|------|
| 2026-04-28 16:25 | DESIGN | completed | 已完成上下文收集、唯一方案设计与任务拆分 |
| 2026-04-28 16:30 | 1.1 | completed | getNodes 已挂载 traffic_stats;累计流量使用 v2_server.u/d |
| 2026-04-28 16:31 | 2.1/2.2 | completed | 已扩展类型与节点流量格式化工具 |
| 2026-04-28 16:32 | 3.1 | completed | 节点名称 hover 详情卡已接入 |
| 2026-04-28 16:34 | 4.1 | completed | npm run build 通过;当前环境缺少 php/composerPHP 语法检查未执行 |
---
## 执行备注
- 现有 `server/manage/getNodes` 已返回节点运行态、墙检测和权限组信息,本次只新增只读统计字段,不改变节点管理写操作。
- 当前工作树存在与本次无关的 `.github/workflows/admin-frontend-docker-publish.yml``.helloagents/CHANGELOG.md``.helloagents/modules/ci-workflows.md``public/assets/admin` 改动,执行时必须保留这些用户已有变更。
- `npm run build` 会刷新 `public/assets/admin` 构建产物,并更新 `admin-frontend/src/types/components.d.ts` 中的 `ElPopover` 自动组件声明。
- 当前执行环境没有 `php``composer` 命令,后端 PHP 语法检查无法在本机执行。