feat(admin-frontend): 补齐用户节点与订单运营工作台
新增用户高级筛选、批量操作与更多行级动作,支持邮件、 CSV、封禁恢复、订单分配、邀请查看、流量记录与重置流量 增强节点管理页的分页、父子筛选、跨页勾选、批量修改与 单节点置顶,并补齐后端批量更新 host、group_ids、rate 修复订单佣金状态误判问题,新增真实佣金筛选与行级确认, 同时优化仪表盘排行悬浮详情展示 补充 admin-frontend 独立 Dockerfile、Caddy 配置与 GHCR 发布工作流,支持通过独立镜像部署管理前端
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"status": "completed",
|
||||
"completed": 4,
|
||||
"failed": 0,
|
||||
"pending": 0,
|
||||
"total": 4,
|
||||
"done": 4,
|
||||
"percent": 100,
|
||||
"current": "用户更多操作复刻已完成,等待后续需求",
|
||||
"updated_at": "2026-04-24 22:45:00"
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"updatedAt": "2026-04-24T14:36:00.000Z",
|
||||
"version": 1,
|
||||
"source": "manual",
|
||||
"originCommand": "generic-r2",
|
||||
"verifyMode": "test-first",
|
||||
"reviewerFocus": [
|
||||
"用户更多操作菜单是否按截图顺序与交互意图完成复刻",
|
||||
"跨页筛选联动是否对用户可见且能明确清除"
|
||||
],
|
||||
"testerFocus": [
|
||||
"分配订单是否可直接预填邮箱打开抽屉",
|
||||
"TA的订单是否跳转订单页并按 user_id 生效",
|
||||
"TA的邀请是否形成可用的用户结果视图",
|
||||
"TA的流量记录与重置流量是否都走真实链路"
|
||||
],
|
||||
"ui": {
|
||||
"required": true,
|
||||
"designContract": true,
|
||||
"sourcePriority": [
|
||||
"requirements.md",
|
||||
".helloagents/DESIGN.md",
|
||||
"hello-ui"
|
||||
],
|
||||
"styleAdvisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": []
|
||||
},
|
||||
"visualValidation": {
|
||||
"required": true,
|
||||
"reason": "本轮要补齐用户更多操作菜单与多个复用弹层/跳转联动,需要确认用户页菜单密度、订单页筛选提示和弹窗挂载都符合既有后台设计契约。",
|
||||
"screens": [
|
||||
"#/users desktop",
|
||||
"#/subscriptions/orders desktop"
|
||||
],
|
||||
"states": [
|
||||
"用户更多操作菜单展开态",
|
||||
"用户页分配订单抽屉展开态",
|
||||
"用户页流量记录弹窗展开态",
|
||||
"订单页按指定用户过滤态"
|
||||
]
|
||||
}
|
||||
},
|
||||
"advisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": [],
|
||||
"preferredSources": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
# admin-frontend 用户管理更多操作复刻 — 实施规划
|
||||
|
||||
## 目标与范围
|
||||
- 把用户管理行级“更多操作”从当前的基础维护菜单升级为更完整的运营工作台菜单。
|
||||
- 以“复用现有抽屉 / 弹窗 / 页面”为主,不重复造轮子。
|
||||
|
||||
## 架构与实现策略
|
||||
- 用户页继续以 `UsersView.vue + useUsersManagement.ts` 为主入口。
|
||||
- 新增 `useUserScopedActions.ts` 负责:
|
||||
- 用户页作用域跳转
|
||||
- 订单分配抽屉预填
|
||||
- 流量记录弹窗状态
|
||||
- 邀请结果视图的路由筛选
|
||||
- 用户流量重置调用
|
||||
- 复用组件策略:
|
||||
- `OrderAssignDrawer.vue`:支持预填邮箱
|
||||
- `TrafficLogDialog.vue`:直接挂到用户页
|
||||
- `OrdersView.vue`:读取路由 query 并自动追加用户过滤
|
||||
- 后端优先复用现有 `traffic-reset/reset-user`,避免再开新接口。
|
||||
|
||||
## 完成定义
|
||||
- 用户页“更多操作”菜单补齐目标操作项,并按截图相近顺序展示。
|
||||
- `分配订单` 可直接打开抽屉,邮箱已回填。
|
||||
- `TA的订单` 可跳转到 `#/subscriptions/orders`,并自动按 `user_id` 过滤。
|
||||
- `TA的邀请` 可在用户页自动切换到“当前用户邀请结果”视图,并允许一键清除。
|
||||
- `TA的流量记录` 可打开流量日志弹窗。
|
||||
- `重置流量` 可调用真实后端接口并在成功后刷新用户列表。
|
||||
|
||||
## 风险与验证
|
||||
- 风险 1:用户页与订单页的跨页筛选若无可见提示,容易造成理解偏差,因此需要补齐筛选提示与清除入口。
|
||||
- 风险 2:用户更多操作继续堆进 `useUsersManagement.ts` 容易过大,因此拆分 `useUserScopedActions.ts`。
|
||||
- 风险 3:重置流量若重新发明接口会增加回归面,因此优先复用 `traffic-reset/reset-user`。
|
||||
- 验证方式:
|
||||
- `npm run build`
|
||||
- 代码自检:用户菜单完整性、订单页 query 过滤、流量重置调用链、邀请筛选可清除
|
||||
|
||||
## 决策记录
|
||||
- [2026-04-24] `分配订单` 直接复用现有订单分配抽屉,并通过 prop 预填用户邮箱。
|
||||
- [2026-04-24] `TA的订单` 采用跳页 + 自动过滤,而不是在用户页内塞第二套订单列表。
|
||||
- [2026-04-24] `TA的邀请` 在当前用户页复用筛选结果视图,不额外新建邀请独立页面。
|
||||
@@ -0,0 +1,41 @@
|
||||
# admin-frontend 用户管理更多操作复刻 — 需求
|
||||
|
||||
确认后冻结,执行阶段不可修改。如需变更必须回到设计阶段重新确认。
|
||||
|
||||
## 核心目标
|
||||
- 在 `admin-frontend` 的用户管理“更多操作”菜单中,继续复刻旧后台的用户级操作项。
|
||||
- 本轮目标菜单项包括:
|
||||
- 编辑
|
||||
- 分配订单
|
||||
- 复制订阅 URL
|
||||
- 重置 UUID 及订阅 URL
|
||||
- TA 的订单
|
||||
- TA 的邀请
|
||||
- TA 的流量记录
|
||||
- 重置流量
|
||||
- 删除
|
||||
|
||||
## 功能边界
|
||||
- `分配订单` 必须直接在用户页打开可用的订单分配抽屉,并预填当前用户邮箱。
|
||||
- `TA的订单` 必须跳转到订单管理页,并自动按当前用户过滤订单。
|
||||
- `TA的邀请` 必须进入“邀请了哪些用户”的结果视图,不接受只弹提示。
|
||||
- `TA的流量记录` 必须直接打开现有流量记录弹窗。
|
||||
- `重置流量` 必须调用真实后端链路,不接受只在前端重置显示值。
|
||||
- 保留本轮上一阶段已交付的高级筛选与批量操作能力,不得回退。
|
||||
|
||||
## 非目标
|
||||
- 本轮不重做用户管理整体布局。
|
||||
- 本轮不新增完整“邀请管理”独立页面,只需要让“TA的邀请”形成可用结果视图。
|
||||
- 本轮不重构订单管理与流量日志页面主体结构,只做最小必要联动。
|
||||
|
||||
## 技术约束
|
||||
- 技术栈固定为 `Vue 3 + TypeScript + Vite + Element Plus`。
|
||||
- 前端改动集中在 `admin-frontend/src/views/users/*`、必要的订单页联动与 API 封装。
|
||||
- 流量重置优先复用现有后端 `traffic-reset/reset-user` 能力,不重复发明新接口。
|
||||
- 视觉继续遵循 `apple/DESIGN.md` 与 `.helloagents/DESIGN.md`。
|
||||
|
||||
## 质量要求
|
||||
- “更多操作”菜单的文案顺序与操作节奏尽量贴近用户截图。
|
||||
- 用户点击某项操作后,必须形成明确结果:打开抽屉 / 打开弹窗 / 跳转并带筛选 / 成功提示。
|
||||
- 订单页与用户页的联动筛选必须可见、可清除,不能让用户陷入“看不出为什么被过滤”的状态。
|
||||
- 最终至少完成一次 `admin-frontend` 构建验证,并同步知识库与验收证据。
|
||||
@@ -0,0 +1,12 @@
|
||||
# admin-frontend 用户管理更多操作复刻 — 任务分解
|
||||
|
||||
## 任务列表
|
||||
- [x] 任务1:补齐本轮方案与合同产物(涉及文件:`.helloagents/plans/202604242236_admin-frontend-user-more-actions/*`;完成标准:存在需求、方案、任务、合同与状态文件;验证方式:文件检查)
|
||||
- [x] 任务2:扩展用户页更多操作状态与复用链路(涉及文件:`admin-frontend/src/views/users/*`;完成标准:菜单补齐并接通订单/邀请/流量/重置流量动作;验证方式:`npm run build`)
|
||||
- [x] 任务3:补齐订单页路由筛选联动与预填订单分配抽屉(涉及文件:`admin-frontend/src/views/subscriptions/OrdersView.vue`、`admin-frontend/src/views/subscriptions/OrderAssignDrawer.vue`;完成标准:用户订单跳转可见且可清除;验证方式:`npm run build`)
|
||||
- [x] 任务4:完成验证与知识库同步(涉及文件:`.helloagents/CHANGELOG.md`、`.helloagents/context.md`、`.helloagents/modules/admin-frontend.md`、`.helloagents/.ralph-visual.json`、`.helloagents/.ralph-closeout.json`、`.helloagents/sessions/master/default/STATE.md`;完成标准:构建通过、知识库更新、证据落盘;验证方式:命令输出 + 证据文件)
|
||||
|
||||
## 进度
|
||||
- [x] 已确认按完整复刻方案推进更多操作。
|
||||
- [x] 已完成用户页菜单、跳页筛选联动与真实流量重置。
|
||||
- [x] 已完成 `npm run build` 构建验证,待输出最终交付摘要。
|
||||
Reference in New Issue
Block a user