Files
yinjianm d4168720ac feat(admin-frontend): 补齐用户节点与订单运营工作台
新增用户高级筛选、批量操作与更多行级动作,支持邮件、
CSV、封禁恢复、订单分配、邀请查看、流量记录与重置流量

增强节点管理页的分页、父子筛选、跨页勾选、批量修改与
单节点置顶,并补齐后端批量更新 host、group_ids、rate

修复订单佣金状态误判问题,新增真实佣金筛选与行级确认,
同时优化仪表盘排行悬浮详情展示

补充 admin-frontend 独立 Dockerfile、Caddy 配置与 GHCR
发布工作流,支持通过独立镜像部署管理前端
2026-04-24 23:15:48 +08:00

63 lines
3.7 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 节点管理分页、置顶与批量修改 — 实施规划
## 目标与范围
- 将现有节点管理页从“单屏全量表格”升级为“可分页浏览、可稳定勾选、可批量维护”的真实运营工作台。
- 在不破坏既有 Apple 化后台节奏的前提下,补齐列表密度管理与批量维护动作。
## 架构与实现策略
- 继续保留 `NodesView.vue` 作为节点页装配入口,但补齐以下四类状态:
- 前端分页状态(页码、每页条数)
- 父/子节点筛选状态
- 跨分页勾选状态
- 批量修改弹窗状态
- 新增 `NodeBatchEditDialog.vue`
- 负责批量修改节点地址(host)、权限组、倍率
- 采用“字段开关 + 输入控件”的结构,避免未启用字段被误提交
- 明确提示仅对已勾选节点生效
- `src/utils/nodes.ts` 负责收敛节点列表的本地过滤逻辑:
- 关键字搜索
- 类型筛选
- 权限组筛选
- 父/子节点筛选
- `src/api/admin.ts``src/types/api.d.ts` 补齐节点批量修改的类型与接口封装。
- Laravel `ManageController::batchUpdate` 做最小扩展,仅补齐 `host / rate / group_ids` 三个字段的批量更新支持。
- “置顶节点”不新开接口,直接基于当前排序结果生成新的 `{ id, order }[]` 并提交到 `server/manage/sort`
## 完成定义
- 节点列表底部出现可用的分页控件,并能按当前筛选结果切页。
- 节点列表支持勾选多个节点,切页后勾选状态仍能稳定恢复。
- 工具条出现“批量修改”入口,且只有已勾选节点时可用。
- 批量修改弹窗支持按需修改 `host / group_ids / rate`,并真实写回后台。
- 节点行菜单新增“置顶节点”,执行后该节点会排到列表最前。
- 搜索工具条新增“全部节点 / 父节点 / 子节点”筛选选项。
## 文件结构
- `.helloagents/plans/202604242245_admin-frontend-node-pagination-batch-edit/*`
- `admin-frontend/src/api/admin.ts`
- `admin-frontend/src/types/api.d.ts`
- `admin-frontend/src/utils/nodes.ts`
- `admin-frontend/src/views/nodes/NodesView.vue`
- `admin-frontend/src/views/nodes/NodeBatchEditDialog.vue`
- `admin-frontend/src/views/nodes/NodeBatchEditDialog.scss`
- `app/Http/Controllers/V2/Admin/Server/ManageController.php`
## UI / 设计约束
- 节点页首屏继续保持“黑色 Hero + 白色工作台”结构,不另起新皮肤。
- 父/子节点筛选应与搜索、类型、权限组并列出现在工具条,维持高密度但不拥挤的运营节奏。
- 批量修改弹窗保持轻薄白色面板、分组式表单和固定底栏,避免做成厚重后台配置页。
- “置顶节点”属于高频轻操作,应放在行级菜单中而不是二级排序弹窗里。
## 风险与验证
- 风险 1:分页后勾选容易丢失,因此需要在前端维护独立的勾选 ID 集合并在切页后回填。
- 风险 2:批量修改只改部分字段,若直接提交完整节点模型容易覆盖协议配置,因此必须使用专门的批量 payload。
- 风险 3`batchUpdate` 原本不支持 `host / rate / group_ids`,前端先实现但后端不补齐会导致伪完成,因此必须同步扩展管理端接口。
- 验证方式:
- `npm run build`
- 代码级视觉自检:节点列表默认态、已勾选批量修改态、批量修改弹窗态
- 代码检查:置顶排序 payload 与批量修改 payload
## 决策记录
- [2026-04-24] 节点分页采用前端本地分页,不为本轮新增后端分页接口。
- [2026-04-24] 批量修改范围按用户确认固定为“仅已勾选节点”,不扩展到筛选结果。
- [2026-04-24] “置顶节点”直接复用 `server/manage/sort`,避免新开单独排序接口。