bindbox-game/.trae/documents/活动创建“下一步”无响应的排查与改造方案.md
邹方成 2a89a1ab9d
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(admin): 更新前端资源文件及修复相关功能
refactor(service): 修改banner和guild删除逻辑为软删除
fix(service): 修复删除操作使用软删除而非物理删除

build: 添加SQLite测试仓库实现
docs: 新增奖励管理字段拆分和批量抽奖UI改造文档

ci: 更新CI忽略文件
style: 清理无用资源文件
2025-11-19 01:35:55 +08:00

2.5 KiB
Raw Blame History

现状确认

  • 后端接口已对接:POST /api/admin/activitiesinternal/router/router.go:78),控制器 CreateActivityinternal/api/admin/activities_admin.go:41)。
  • 管理端前端已调用:createActivity() 指向 admin/activitiesweb/admin/src/api/adminActivities.ts:13)。
  • 向导有两种:
    • 独立向导页 wizard/index.vue下一步仅切换步骤(next()),提交动作分别由页面内的提交按钮触发(submitActivity/submitIssue/submitRewards)。
    • 管理页弹窗向导 manage/index.vue下一步会调用创建接口然后推进步骤(nextWizard())。

可能原因

  • 使用了独立向导页,点击下一步未触发API预期行为需用提交按钮)。
  • 请求未通过权限:后端要求超级管理员(ctx.SessionUserInfo().IsSuper == 1internal/api/admin/activities_admin.go:56-59)。
  • 请求参数不合法:name必填、activity_category_id不可为0同文件 15-18, 51-54
  • 环境未配置或认证头缺失:VITE_API_URL 未指向后端 /api 前缀,或 Authorization 未带登录后的纯 Token不加 Bearer)。

排查步骤

  1. 打开浏览器 Network在点击下一步提交后确认是否发起 POST {VITE_API_URL}/api/admin/activities;查看响应码与返回体。
  2. 确认当前页面是弹窗向导还是独立向导:
    • 若是独立向导,请使用每步的提交按钮;下一步只换页不提交。
  3. 验证权限与参数:
    • 登录账号需 is_super=1;否则返回 400 禁止操作
    • nameactivity_category_id需填充;分类可通过 GET /api/admin/activity_categories 获取。
  4. 检查前端环境:
    • VITE_API_URL 应指向后端根(例如 http://localhost:8000),请求工具会拼接 admin/.../api/admin/...
    • Authorization 头为登录获得的 Token 字符串(无 Bearer 前缀)。

改造建议(可选)

  • 为独立向导页 wizard/index.vue 增强交互:在 next() 中根据 active 自动调用对应的 submitActivity/submitIssue,使“下一步”即提交。
  • 在按钮文案上提示“提交并进入下一步”,并在未填必填项时给出校验提示(阻止推进)。

验收标准

  • 在管理端,创建活动流程点击提交或(改造后)点击下一步能成功发起请求并进入下一步;错误时有明确提示。
  • 非超级管理员或参数缺失时,前端能正确显示后端返回的错误信息。