16203b14f6
扩展管理端侧边栏与路由,新增系统配置真实页面、订阅套餐 管理页、节点管理页及多个结构化占位页 补齐前端 API、类型与工具层,并增强仪表盘刷新、趋势切换、 失败作业详情与流量排行 limit 联动能力 同步后端 traffic rank limit 支持与知识库归档、设计约束、 验证配置及视觉验收产物
3.9 KiB
3.9 KiB
变更提案: traffic-rank-limit-backend-adapt
元信息
类型: 功能增强 + 接口适配
方案类型: implementation
优先级: P1
状态: 已完成
创建: 2026-04-23
1. 需求
背景
当前 admin-frontend 的节点/用户流量排行已经补上了 10个 / 20个 切换 UI,但后端 stat/getTrafficRank 接口仍固定只取前 10 条,所以前端切到 20 条时实际上拿不到更多数据。同时,用户进一步明确:24 小时口径下依然要显示增幅/减幅,不需要特殊隐藏。
目标
- 让后端
getTrafficRank支持按请求返回10或20条数据。 - 让前端在节点排行/用户排行切换显示数量时,把对应的
limit传给后端重新请求。 - 保持 24h 口径下继续返回并显示涨幅/减幅,不额外关闭该能力。
约束条件
范围约束: 仅调整 traffic rank 相关前后端逻辑,不扩展到其他 dashboard 模块
接口约束: 不新增新接口,在现有 /stat/getTrafficRank 基础上增量支持 limit 参数
业务约束: 24h / 7天 / 30天 都继续允许返回 change,前端不对 24h 单独隐藏
工作树约束: 在当前脏工作树基础上最小增量修改,只触达本轮确有关系的文件
验收标准
stat/getTrafficRank接口支持接收limit=10|20,并按参数返回对应条数。- dashboard 前端在节点/用户排行切换显示数量时,会向后端请求对应 limit,而不是仅前端截断。
- 24h 口径下排行仍显示增幅/减幅,前后端都不额外屏蔽该字段。
admin-frontend构建通过,相关 PHP 文件语法检查通过。
2. 方案
技术方案
- 在
app/Http/Controllers/V2/Admin/StatController.php的getTrafficRank()中新增limit参数校验,并把当前节点/用户排行查询的limit(10)改为动态 limit。 - 在
admin-frontend/src/api/admin.ts的getTrafficRank()中支持传入limit参数。 - 在
admin-frontend/src/views/dashboard/DashboardView.vue的loadRankings()中分别把nodeRankLimit、userRankLimit传给对应接口,并在显示数量变化时重新请求排行数据。
影响范围
涉及模块:
- app/Http/Controllers/V2/Admin/StatController.php
- admin-frontend/src/api/admin.ts
- admin-frontend/src/views/dashboard/DashboardView.vue
- public/assets/admin (构建产物输出)
预计变更文件: 3-4
风险评估
| 风险 | 等级 | 应对 |
|---|---|---|
| limit 参数放开后请求值异常 | 中 | 后端仅允许 10 或 20,避免任意放大查询 |
| 前端 limit 切换后仍沿用旧数据 | 中 | 对 nodeRankLimit / userRankLimit 增加 watch,变化即重新拉取 |
| 当前工作树已有 dashboard 相关脏改动 | 中 | 只做最小补丁,并通过构建与 git diff 核对本轮触达文件 |
3. 成果设计
设计方向
- 交互基线: 维持现有 Apple 风格排行面板,不新增可视化噪音。
- 数据行为: 数量切换真正驱动后端返回更多排行项,而不是仅靠前端裁切。
- 显示规则: 24 小时口径仍保留涨跌百分比展示,与 7 天/30 天保持一致。
4. 技术决策
traffic-rank-limit-backend-adapt#D001: 在现有 getTrafficRank 接口上新增 limit 参数
日期: 2026-04-23
状态: ✅采纳
背景: 前端已经存在 10/20 切换控件,但后端固定 limit 10 导致能力不完整。
决策: 不新增新接口,直接在 getTrafficRank 上增加受控 limit 参数。
理由: 改动最小,且与现有 dashboard 请求模型保持一致。
traffic-rank-limit-backend-adapt#D002: 24h 口径继续显示 change
日期: 2026-04-23
状态: ✅采纳
背景: 用户明确要求 24 小时口径也允许展示增幅/减幅。
决策: 保持后端始终返回 change,前端不为 24h 增加隐藏逻辑。
理由: 行为统一,避免不同时间口径的 UI 规则分裂。