# admin-frontend 节点管理分页、置顶与批量修改 — 需求 确认后冻结,执行阶段不可修改。如需变更必须回到设计阶段重新确认。 ## 核心目标 - 在 `admin-frontend` 的 `#/nodes` 页面内补齐分页能力,避免节点列表持续增长后整页难以浏览。 - 为节点列表增加“置顶”单行操作,让运营者可以把某个节点快速移动到列表顶部。 - 为节点管理补齐批量修改工作流,并按本轮确认仅对**已勾选节点**生效。 - 为节点搜索补齐“子节点 / 父节点”筛选选项,帮助运营者快速区分主节点与子节点。 ## 功能边界 - 必须保留现有节点管理能力:搜索、类型筛选、权限组筛选、显隐切换、复制、删除、添加节点、编辑节点、编辑排序。 - 分页必须作用于当前筛选结果,并允许切换每页数量。 - “置顶节点”必须真实生效到后台排序,不能只在前端临时重排。 - 批量修改本轮只支持以下字段: - 节点地址(仅 `host`,不含端口) - 权限组 - 倍率 - 批量修改只作用于已勾选节点;未勾选节点时不能误操作全部节点或筛选结果。 - “子节点 / 父节点”筛选必须基于 `parent_id` 真实区分: - 父节点:`parent_id` 为空 - 子节点:`parent_id` 有值 ## 非目标 - 本轮不引入后端列表分页接口,节点列表继续沿用 `server/manage/getNodes` 全量拉取 + 前端分页。 - 本轮不接入批量删除、批量重置流量、批量显隐、批量启停等其他批量动作。 - 本轮不修改节点编辑弹窗字段结构,也不扩展批量端口修改。 ## 技术约束 - 技术栈固定为 `Vue 3 + TypeScript + Vite + Element Plus`,主目录限定在 `admin-frontend/`,后端仅做最小必要的 Laravel 管理接口补丁。 - 节点真相源仍以 `App\Http\Controllers\V2\Admin\Server\ManageController`、`App\Http\Requests\Admin\ServerSave` 与 `App\Models\Server` 为准。 - 置顶动作继续复用 `POST /server/manage/sort`。 - 批量修改优先复用现有 `POST /server/manage/batchUpdate`,只补齐本轮所需字段支持。 - 视觉继续遵循 `apple/DESIGN.md` 与 `.helloagents/DESIGN.md` 的 Apple 化后台约束:黑色首屏 + 白色工作台 + 蓝色单一强调。 ## 质量要求 - 分页、勾选和筛选不能互相打架:切页后已勾选节点状态应保持稳定,不得让用户误以为选择丢失。 - 批量修改入口需要明确显示“当前已选 N 个节点”,降低误操作风险。 - 批量修改弹窗需清楚说明“节点地址只改 host,不改端口”,避免概念歧义。 - 父/子节点筛选应作为节点搜索工作流的一部分清晰可见,而不是埋进深层菜单。 - 最终至少完成一次 `admin-frontend` 构建验证,并留下视觉验收与交付证据。