# admin-frontend 用户管理高级筛选与批量操作 — 需求

确认后冻结，执行阶段不可修改。如需变更必须回到设计阶段重新确认。

## 核心目标
- 在 `admin-frontend` 的用户管理页补齐“高级筛选”能力，支持按照多个条件组合筛选用户。
- 高级筛选字段需覆盖用户提供截图中的核心字段：邮箱、用户 ID、订阅、流量、已用流量、在线设备、到期时间、UUID、Token、账号状态、备注。
- 在用户管理页接入“对筛选结果执行批量操作”的工作流，至少支持：
  - 发送邮件
  - 导出 CSV
  - 批量封禁
  - 批量恢复正常（用户本轮确认追加）

## 功能边界
- 必须保留现有用户管理基础能力：搜索、快捷状态筛选、订阅筛选、创建用户、行级编辑/复制/重置密钥/封禁/删除。
- 必须新增“高级筛选”弹窗或等价工作流，允许添加多条筛选条件，并将筛选结果回流到用户列表。
- 批量操作应明确作用范围：
  - 若已勾选用户，则作用于已勾选用户
  - 若未勾选但存在筛选条件，则作用于当前筛选结果
  - 若既未勾选也无筛选条件，则作用于全部用户，并给出明确确认
- 批量邮件需提供主题与正文输入界面，不接受无内容直接发送。
- 批量恢复正常必须真实生效，不接受只在前端伪装状态。

## 非目标
- 本轮不重做用户编辑抽屉结构。
- 本轮不重构用户管理后端查询架构，只在现有接口能力基础上做最小必要扩展。
- 本轮不新增复杂图表或统计卡片。

## 技术约束
- 技术栈固定为 `Vue 3 + TypeScript + Vite + Element Plus`，目录限定在 `admin-frontend/` 与最小必要的 Laravel 管理端控制器。
- 用户列表真相源为 `App\Http\Controllers\V2\Admin\UserController`。
- 前端用户接口继续走：
  - `GET /user/fetch`
  - `POST /user/update`
  - `POST /user/resetSecret`
  - `POST /user/destroy`
  - `POST /user/dumpCSV`
  - `POST /user/sendMail`
  - `POST /user/ban`
- 视觉需遵循 `apple/DESIGN.md` 与 `.helloagents/DESIGN.md`：黑色首屏 + 白色工作台 + 蓝色单一强调，不引入另一套后台皮肤。

## 质量要求
- 高级筛选需贴近截图中的“条件卡片 + 字段选择 + 多条件叠加”体验，而不是只追加一排新的下拉框。
- 批量操作入口需清晰可发现，但不压过主列表的日常使用节奏。
- 用户页至少补齐“高级筛选已生效”的可见反馈，避免用户不知道当前列表为何被过滤。
- 最终至少完成一次 `admin-frontend` 构建验证，并留下视觉验收与交付证据。
