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": "admin-frontend GHCR 发布与 compose 接入已完成,等待用户后续动作",
|
||||
"updated_at": "2026-04-24 23:05:00"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"updatedAt": "2026-04-24T14:50:00.000Z",
|
||||
"version": 1,
|
||||
"source": "manual",
|
||||
"originCommand": "generic-r2",
|
||||
"verifyMode": "test-first",
|
||||
"reviewerFocus": [
|
||||
"admin-frontend 镜像链路是否与主应用镜像链路解耦且不互相污染",
|
||||
"compose 分支新增 admin 服务后镜像名、端口和访问路径是否一致"
|
||||
],
|
||||
"testerFocus": [
|
||||
"vite 输出目录是否可在容器构建时切换到 dist",
|
||||
"admin-frontend Dockerfile 是否能独立构建静态镜像",
|
||||
"GitHub Actions workflow 与 compose.yaml 是否都能通过 YAML 解析"
|
||||
],
|
||||
"ui": {
|
||||
"required": false,
|
||||
"designContract": false,
|
||||
"sourcePriority": [
|
||||
"requirements.md"
|
||||
],
|
||||
"styleAdvisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": []
|
||||
},
|
||||
"visualValidation": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"screens": [],
|
||||
"states": []
|
||||
}
|
||||
},
|
||||
"advisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": [],
|
||||
"preferredSources": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
# admin-frontend GHCR 自动构建与 compose 接入 — 实施规划
|
||||
|
||||
## 目标与范围
|
||||
- 让 `admin-frontend` 从“仓内前端目录”升级为“可独立构建、可独立分发、可独立部署”的静态前端镜像。
|
||||
- 保持当前主应用镜像发布链路不变,同时补一条面向前端的独立 GHCR 发布通道。
|
||||
- 让 `compose` 分支可直接拉起独立 `admin` 服务,对外暴露单独端口。
|
||||
|
||||
## 架构与实现策略
|
||||
- 构建链路:
|
||||
- 在 `admin-frontend/` 下新增独立 Dockerfile,采用 `Node -> Caddy` 多阶段构建。
|
||||
- 通过环境变量把容器构建输出切到 `dist`,避免影响当前仓内 `public/assets/admin` 输出。
|
||||
- 发布链路:
|
||||
- 新增单独的 GitHub Actions workflow,仅在 `admin-frontend/**` 或 workflow 自身变更时触发。
|
||||
- 镜像发布到 `ghcr.io/<owner>/xboard-admin-frontend`,标签策略与主应用保持一致:分支、sha、`new`、`latest`。
|
||||
- 运行链路:
|
||||
- 通过 Caddy 在容器内提供静态资源,根路径自动重定向到 `/assets/admin/`。
|
||||
- `compose` 分支新增 `admin` 服务,直接拉取 GHCR 镜像并暴露 `7002:80`。
|
||||
|
||||
## 完成定义
|
||||
- `admin-frontend` 本地可通过 Dockerfile 正常构建镜像。
|
||||
- GitHub Actions 可在 push 后自动构建并推送 `admin-frontend` 镜像到 GHCR。
|
||||
- `compose` 分支的 `compose.yaml` 已包含独立 `admin` 服务,且镜像名与端口配置正确。
|
||||
- `npm run build` 与 workflow/compose 语法检查通过。
|
||||
|
||||
## 风险与验证
|
||||
- 风险 1:`vite.config.ts` 目前默认输出到仓根 `public/assets/admin`,容器构建若不切换输出目录会污染镜像构建路径,因此必须引入可覆写输出目录。
|
||||
- 风险 2:若前端服务直接暴露 `/` 而未处理 `/assets/admin/`,现有资源前缀会失配,因此需要容器内重定向和静态路径兜底。
|
||||
- 风险 3:当前仓库已有大量未提交业务改动,不能直接切换分支修改 `compose.yaml`,需在独立 worktree 中处理 `compose` 分支文件。
|
||||
- 验证方式:
|
||||
- `npm run build`
|
||||
- `docker build -f admin-frontend/Dockerfile admin-frontend`
|
||||
- `python -c "import yaml; ..."` 检查 workflow 与 compose YAML
|
||||
|
||||
## 决策记录
|
||||
- [2026-04-24] 采用独立 `admin` 服务,并按用户确认暴露单独端口,不内嵌回 Laravel 主服务容器。
|
||||
- [2026-04-24] 采用独立 workflow,而不是把前端镜像构建塞进现有后端 `docker-publish.yml`,以降低耦合和回归面。
|
||||
- [2026-04-24] 前端运行时采用 Caddy 提供静态资源并做 `/ -> /assets/admin/` 重定向,兼容当前 `base: '/assets/admin/'`。
|
||||
@@ -0,0 +1,31 @@
|
||||
# admin-frontend GHCR 自动构建与 compose 接入 — 需求
|
||||
|
||||
确认后冻结,执行阶段不可修改。如需变更必须回到设计阶段重新确认。
|
||||
|
||||
## 核心目标
|
||||
- 为 `admin-frontend` 增加独立的 Docker 构建与 GitHub Actions 发布链路。
|
||||
- 在代码提交后,自动构建 `admin-frontend` 镜像并推送到 GHCR。
|
||||
- 按用户已确认的方案,把 `compose` 分支的 `compose.yaml` 增加独立 `admin` 服务,并暴露独立访问端口。
|
||||
|
||||
## 功能边界
|
||||
- 镜像必须只面向 `admin-frontend/` 构建,不混入 Laravel 主应用镜像逻辑。
|
||||
- GHCR 发布链路需支持与主仓当前镜像发布策略并存,不能破坏现有后端 `docker-publish.yml`。
|
||||
- 新增的 `admin` 服务需直接引用 GHCR 镜像,不走本地 `build:`。
|
||||
- `admin` 服务需可独立访问,并保留把 `/assets/admin/` 继续挂到反向代理的能力。
|
||||
|
||||
## 非目标
|
||||
- 本轮不改造 Laravel 主应用 Dockerfile。
|
||||
- 本轮不重做 `admin-frontend` 的业务代码与视觉界面。
|
||||
- 本轮不处理 GitHub Secrets 之外的外部部署脚本。
|
||||
|
||||
## 技术约束
|
||||
- `admin-frontend` 仍使用 `Vue 3 + TypeScript + Vite`。
|
||||
- 本地现有构建输出 `../public/assets/admin` 不能被破坏;容器构建需使用独立输出目录。
|
||||
- 发布目标为 GHCR,多架构与登录方式尽量沿用现有主仓工作流模式。
|
||||
- 视觉与前端基线继续遵循 `apple/DESIGN.md`,但本轮主要产出为工程/部署配置。
|
||||
|
||||
## 质量要求
|
||||
- `admin-frontend` 镜像需可直接运行并稳定提供静态资源。
|
||||
- 工作流命名、镜像命名与标签策略需清晰,不和主应用镜像冲突。
|
||||
- `compose.yaml` 中新增服务后,配置语义应一眼可读,端口、镜像名和用途明确。
|
||||
- 最终至少完成一次 `admin-frontend` 构建验证与工作流 YAML 语法级自检。
|
||||
@@ -0,0 +1,13 @@
|
||||
# admin-frontend GHCR 自动构建与 compose 接入 — 任务分解
|
||||
|
||||
## 任务列表
|
||||
- [x] 任务1:补齐本轮方案与合同产物(涉及文件:`.helloagents/plans/202604242250_admin-frontend-ghcr-compose/*`;完成标准:存在需求、方案、任务、合同与状态文件;验证方式:文件检查)
|
||||
- [x] 任务2:实现 `admin-frontend` 独立 Docker 构建链路(涉及文件:`admin-frontend/Dockerfile`、`admin-frontend/Caddyfile`、`admin-frontend/.dockerignore`、`admin-frontend/vite.config.ts`;完成标准:可输出独立静态镜像;验证方式:`npm run build` + `ADMIN_BUILD_OUT_DIR=dist npm run build`,本地 `docker build` 因环境缺少 docker CLI 未执行)
|
||||
- [x] 任务3:新增前端 GHCR 发布 workflow(涉及文件:`.github/workflows/admin-frontend-docker-publish.yml`;完成标准:push 后可自动构建并推送前端镜像;验证方式:YAML 解析 + 工作流自检)
|
||||
- [x] 任务4:在 compose 分支接入独立 `admin` 服务并完成知识库同步(涉及文件:`compose.yaml`(compose 分支 worktree)、`.helloagents/CHANGELOG.md`、`.helloagents/context.md`、`.helloagents/modules/admin-frontend.md`、`.helloagents/sessions/master/default/STATE.md`;完成标准:`compose` 分支文件完成接入且知识库已更新;验证方式:YAML 解析 + 文件检查)
|
||||
|
||||
## 进度
|
||||
- [x] 已确认采用独立 `admin` 服务,并在 compose 分支暴露单独端口。
|
||||
- [x] 已完成方案包、前端镜像构建链路与 GHCR workflow 编排。
|
||||
- [x] 已完成 compose 分支 `compose.yaml` 接入与 YAML 语法校验。
|
||||
- [x] 已完成 `npm run build` 与 `ADMIN_BUILD_OUT_DIR=dist npm run build` 验证;本地 `docker build` 因环境缺少 `docker` 命令未执行。
|
||||
Reference in New Issue
Block a user