feat(admin-frontend): 补齐用户节点与订单运营工作台

新增用户高级筛选、批量操作与更多行级动作,支持邮件、
CSV、封禁恢复、订单分配、邀请查看、流量记录与重置流量

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

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

补充 admin-frontend 独立 Dockerfile、Caddy 配置与 GHCR
发布工作流,支持通过独立镜像部署管理前端
This commit is contained in:
yinjianm
2026-04-24 23:15:48 +08:00
parent e393b11b61
commit d4168720ac
65 changed files with 4114 additions and 438 deletions
+12 -14
View File
@@ -1,10 +1,10 @@
{
"updatedAt": "2026-04-24T09:54:43.768Z",
"updatedAt": "2026-04-24T15:11:19.540Z",
"source": "manual",
"originCommand": "generic-r2",
"reason": "节点管理属于截图导向的高密度运营工作台,本轮通过代码结构检查与构建结果确认新增、编辑、排序界面已按目标状态落地。",
"reason": "节点管理本轮新增分页、父子筛选、已勾选批量修改与置顶动作,需要确认工作台节奏和批量作用域提示与 Apple 化后台契约一致。",
"tooling": [
"code-inspection",
"code inspection",
"npm run build"
],
"screensChecked": [
@@ -12,22 +12,20 @@
],
"statesChecked": [
"节点列表默认加载完成态",
"新建节点未选择协议态",
"新建节点 VLess 配置态",
"编辑排序对话框态"
"节点列表已勾选批量操作可用态",
"节点批量修改弹窗展开态",
"节点父子筛选切换态"
],
"status": "PASS",
"summary": "已确认 NodesView 接入真实新增、编辑、排序入口,NodeEditorDialog 覆盖 11 种协议动态字段,NodeSortDialog 可提交排序 payload,且 admin-frontend 构建通过。",
"findings": [
"中央大弹窗采用顶部协议选择与白色高密度表单结构,贴近用户截图。",
"VLess、Trojan、VMess 等协议会按安全层与传输层切换不同字段块。",
"排序流程采用本地草稿加上移/下移,与现有后台排序模式一致。"
"summary": "已通过代码级视觉验收确认节点页维持黑色 Hero + 白色工作台结构,工具条新增父/子节点筛选、批量修改和分页后仍保持高密度但可读的 Apple 化运营节奏。",
"findings": [],
"recommendations": [
"建议在真实登录态下再手动确认跨分页勾选与批量修改对后端返回数据的联动表现。"
],
"recommendations": [],
"fingerprint": {
"available": true,
"unstaged": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 12 +-\n .helloagents/.ralph-visual.json | 27 +-\n .helloagents/CHANGELOG.md | 42 +++\n .helloagents/INDEX.md | 2 +-\n .helloagents/archive/_index.md | 5 +\n .helloagents/context.md | 24 +-\n .helloagents/modules/admin-frontend.md | 21 +-\n .../.status.json | 2 +-\n .../tasks.md | 8 +-\n .../2026-04-24T07-44-44-846Z-unknown-e3upr9.jsonl | 6 +\n .../2026-04-24T08-15-56-367Z-claude-u7aa37.jsonl | 1 +\n .helloagents/sessions/master/default/STATE.md | 19 +-\n admin-frontend/src/api/admin.ts | 126 +++++++\n admin-frontend/src/layouts/AdminLayout.vue | 39 +-\n admin-frontend/src/router/index.ts | 6 +\n admin-frontend/src/types/api.d.ts | 216 +++++++++++-\n admin-frontend/src/types/components.d.ts | 2 +\n admin-frontend/src/utils/nodes.ts | 4 +-\n admin-frontend/src/views/nodes/NodeGroupsView.vue | 314 ++++++++++++-----\n admin-frontend/src/views/nodes/NodeRoutesView.vue | 357 ++++++++++++++-----\n admin-frontend/src/views/nodes/NodesView.vue | 102 +++++-\n .../src/views/system/KnowledgeEditorDialog.vue | 2 +-\n .../src/views/system/SystemKnowledgeView.scss | 69 ++--\n .../src/views/system/SystemKnowledgeView.vue | 391 ++++++++++++++++++++-\n public/assets/admin | 0\n 26 files changed, 1541 insertions(+), 260 deletions(-)",
"unstaged": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 12 +-\n .helloagents/.ralph-visual.json | 32 +-\n .helloagents/CHANGELOG.md | 39 +-\n .helloagents/archive/_index.md | 4 +\n .helloagents/context.md | 12 +-\n .helloagents/modules/admin-frontend.md | 19 +-\n .../.status.json | 10 +-\n .../contract.json | 27 +-\n .../proposal.md | 19 +-\n .../tasks.md | 14 +-\n .../2026-04-24T07-44-44-846Z-unknown-e3upr9.jsonl | 5 +\n .../2026-04-24T08-15-56-367Z-claude-u7aa37.jsonl | 3 +\n .helloagents/sessions/master/default/STATE.md | 18 +-\n admin-frontend/src/api/admin.ts | 31 ++\n admin-frontend/src/types/api.d.ts | 28 ++\n admin-frontend/src/types/components.d.ts | 1 +\n admin-frontend/src/utils/nodes.ts | 12 +\n admin-frontend/src/utils/orders.ts | 50 ++-\n admin-frontend/src/utils/users.ts | 352 ++++++++++++++-\n .../src/views/dashboard/DashboardView.vue | 162 +++++--\n admin-frontend/src/views/nodes/NodesView.vue | 260 ++++++++++-\n .../src/views/subscriptions/OrderAssignDrawer.vue | 3 +-\n .../src/views/subscriptions/OrderDetailDrawer.vue | 20 +-\n .../src/views/subscriptions/OrdersView.scss | 16 +\n .../src/views/subscriptions/OrdersView.vue | 225 +++++++++-\n admin-frontend/src/views/users/UsersView.vue | 490 ++++++++-------------\n admin-frontend/vite.config.ts | 3 +-\n .../V2/Admin/Server/ManageController.php | 13 +\n app/Http/Controllers/V2/Admin/UserController.php | 5 +-\n public/assets/admin | 0\n 31 files changed, 1442 insertions(+), 447 deletions(-)",
"staged": "",
"combined": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 12 +-\n .helloagents/.ralph-visual.json | 27 +-\n .helloagents/CHANGELOG.md | 42 +++\n .helloagents/INDEX.md | 2 +-\n .helloagents/archive/_index.md | 5 +\n .helloagents/context.md | 24 +-\n .helloagents/modules/admin-frontend.md | 21 +-\n .../.status.json | 2 +-\n .../tasks.md | 8 +-\n .../2026-04-24T07-44-44-846Z-unknown-e3upr9.jsonl | 6 +\n .../2026-04-24T08-15-56-367Z-claude-u7aa37.jsonl | 1 +\n .helloagents/sessions/master/default/STATE.md | 19 +-\n admin-frontend/src/api/admin.ts | 126 +++++++\n admin-frontend/src/layouts/AdminLayout.vue | 39 +-\n admin-frontend/src/router/index.ts | 6 +\n admin-frontend/src/types/api.d.ts | 216 +++++++++++-\n admin-frontend/src/types/components.d.ts | 2 +\n admin-frontend/src/utils/nodes.ts | 4 +-\n admin-frontend/src/views/nodes/NodeGroupsView.vue | 314 ++++++++++++-----\n admin-frontend/src/views/nodes/NodeRoutesView.vue | 357 ++++++++++++++-----\n admin-frontend/src/views/nodes/NodesView.vue | 102 +++++-\n .../src/views/system/KnowledgeEditorDialog.vue | 2 +-\n .../src/views/system/SystemKnowledgeView.scss | 69 ++--\n .../src/views/system/SystemKnowledgeView.vue | 391 ++++++++++++++++++++-\n public/assets/admin | 0\n 26 files changed, 1541 insertions(+), 260 deletions(-)\n---"
"combined": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 12 +-\n .helloagents/.ralph-visual.json | 32 +-\n .helloagents/CHANGELOG.md | 39 +-\n .helloagents/archive/_index.md | 4 +\n .helloagents/context.md | 12 +-\n .helloagents/modules/admin-frontend.md | 19 +-\n .../.status.json | 10 +-\n .../contract.json | 27 +-\n .../proposal.md | 19 +-\n .../tasks.md | 14 +-\n .../2026-04-24T07-44-44-846Z-unknown-e3upr9.jsonl | 5 +\n .../2026-04-24T08-15-56-367Z-claude-u7aa37.jsonl | 3 +\n .helloagents/sessions/master/default/STATE.md | 18 +-\n admin-frontend/src/api/admin.ts | 31 ++\n admin-frontend/src/types/api.d.ts | 28 ++\n admin-frontend/src/types/components.d.ts | 1 +\n admin-frontend/src/utils/nodes.ts | 12 +\n admin-frontend/src/utils/orders.ts | 50 ++-\n admin-frontend/src/utils/users.ts | 352 ++++++++++++++-\n .../src/views/dashboard/DashboardView.vue | 162 +++++--\n admin-frontend/src/views/nodes/NodesView.vue | 260 ++++++++++-\n .../src/views/subscriptions/OrderAssignDrawer.vue | 3 +-\n .../src/views/subscriptions/OrderDetailDrawer.vue | 20 +-\n .../src/views/subscriptions/OrdersView.scss | 16 +\n .../src/views/subscriptions/OrdersView.vue | 225 +++++++++-\n admin-frontend/src/views/users/UsersView.vue | 490 ++++++++-------------\n admin-frontend/vite.config.ts | 3 +-\n .../V2/Admin/Server/ManageController.php | 13 +\n app/Http/Controllers/V2/Admin/UserController.php | 5 +-\n public/assets/admin | 0\n 31 files changed, 1442 insertions(+), 447 deletions(-)\n---"
}
}