feat(admin-frontend): 完成节点与礼品卡管理工作台

补齐节点管理真实新增、编辑与排序流程,接入权限组与路由组
维护页,并支持 11 种协议的动态配置表单

开放礼品卡管理入口,交付模板、兑换码、使用记录与统计四页签
工作台,接入 gift-card 相关后台接口

将知识库、权限组与路由管理从占位页升级为真实页面,并修复侧边栏
低高度裁切问题

修复仪表盘 24h 流量排行涨跌始终为 0 的问题,改为对比昨天整日统
计并补充单元测试
This commit is contained in:
yinjianm
2026-04-24 21:58:16 +08:00
parent f7cef30b9c
commit e393b11b61
80 changed files with 8811 additions and 278 deletions
+16 -14
View File
@@ -1,31 +1,33 @@
{
"updatedAt": "2026-04-24T08:26:29.760Z",
"updatedAt": "2026-04-24T09:54:43.768Z",
"source": "manual",
"originCommand": "generic-r2",
"reason": "订单管理属于真实后台业务页,需要确认列表结构、筛选条与详情抽屉在代码实现上与目标截图和 Apple 化后台契约一致。",
"reason": "节点管理属于截图导向的高密度运营工作台,本轮通过代码结构检查与构建结果确认新增、编辑、排序界面已按目标状态落地。",
"tooling": [
"code inspection",
"code-inspection",
"npm run build"
],
"screensChecked": [
"#/subscriptions/orders desktop"
"#/nodes desktop"
],
"statesChecked": [
"订单列表默认加载完成态",
"分配订单抽屉展开态",
"订单详情抽屉展开态"
"节点列表默认加载完成态",
"新建节点未选择协议态",
"新建节点 VLess 配置态",
"编辑排序对话框态"
],
"status": "PASS",
"summary": "已基于代码结构检查与 npm run build 对订单管理首版完成结构化验收:列表页已接入真实 order 接口,筛选条、分配订单抽屉与详情抽屉实现齐全;当前因本地缺少真实后台登录态和浏览器工具,视觉结论以代码级契约核对为准。",
"findings": [],
"recommendations": [
"下一阶段可补批量操作和礼品卡管理真实页",
"若后续具备本地登录态,可补做真实接口环境下的浏览器级视觉回归"
"summary": "已确认 NodesView 接入真实新增、编辑、排序入口,NodeEditorDialog 覆盖 11 种协议动态字段,NodeSortDialog 可提交排序 payload,且 admin-frontend 构建通过。",
"findings": [
"中央大弹窗采用顶部协议选择与白色高密度表单结构,贴近用户截图。",
"VLess、Trojan、VMess 等协议会按安全层与传输层切换不同字段块。",
"排序流程采用本地草稿加上移/下移,与现有后台排序模式一致。"
],
"recommendations": [],
"fingerprint": {
"available": true,
"unstaged": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 16 +-\n .helloagents/.ralph-review.json | 24 +-\n .helloagents/.ralph-visual.json | 43 ++--\n .helloagents/CHANGELOG.md | 63 +++++\n .helloagents/INDEX.md | 7 +-\n .helloagents/archive/_index.md | 10 +\n .helloagents/context.md | 26 +-\n .helloagents/modules/_index.md | 1 +\n .helloagents/modules/admin-frontend.md | 29 ++-\n .../2026-04-23T15-07-42-905Z-unknown-t2hj2g.jsonl | 18 --\n .helloagents/sessions/master/default/STATE.md | 21 +-\n admin-frontend/src/api/admin.ts | 229 +++++++++++++++++\n admin-frontend/src/layouts/AdminLayout.vue | 4 +-\n admin-frontend/src/router/index.ts | 22 +-\n admin-frontend/src/types/api.d.ts | 281 ++++++++++++++++++++-\n admin-frontend/src/utils/plans.ts | 9 +\n .../src/views/subscriptions/PlansView.vue | 13 +-\n app/Protocols/Stash.php | 21 ++\n public/assets/admin | 0\n 20 files changed, 746 insertions(+), 95 deletions(-)",
"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(-)",
"staged": "",
"combined": ".helloagents/.ralph-breaker.json | 4 +-\n .helloagents/.ralph-closeout.json | 16 +-\n .helloagents/.ralph-review.json | 24 +-\n .helloagents/.ralph-visual.json | 43 ++--\n .helloagents/CHANGELOG.md | 63 +++++\n .helloagents/INDEX.md | 7 +-\n .helloagents/archive/_index.md | 10 +\n .helloagents/context.md | 26 +-\n .helloagents/modules/_index.md | 1 +\n .helloagents/modules/admin-frontend.md | 29 ++-\n .../2026-04-23T15-07-42-905Z-unknown-t2hj2g.jsonl | 18 --\n .helloagents/sessions/master/default/STATE.md | 21 +-\n admin-frontend/src/api/admin.ts | 229 +++++++++++++++++\n admin-frontend/src/layouts/AdminLayout.vue | 4 +-\n admin-frontend/src/router/index.ts | 22 +-\n admin-frontend/src/types/api.d.ts | 281 ++++++++++++++++++++-\n admin-frontend/src/utils/plans.ts | 9 +\n .../src/views/subscriptions/PlansView.vue | 13 +-\n app/Protocols/Stash.php | 21 ++\n public/assets/admin | 0\n 20 files changed, 746 insertions(+), 95 deletions(-)\n---"
"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---"
}
}