Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
refactor(service): 修改banner和guild删除逻辑为软删除 fix(service): 修复删除操作使用软删除而非物理删除 build: 添加SQLite测试仓库实现 docs: 新增奖励管理字段拆分和批量抽奖UI改造文档 ci: 更新CI忽略文件 style: 清理无用资源文件
31 lines
2.5 KiB
Markdown
31 lines
2.5 KiB
Markdown
## 现状确认
|
||
- 后端接口已对接:`POST /api/admin/activities`(`internal/router/router.go:78`),控制器 `CreateActivity`(`internal/api/admin/activities_admin.go:41`)。
|
||
- 管理端前端已调用:`createActivity()` 指向 `admin/activities`(`web/admin/src/api/adminActivities.ts:13`)。
|
||
- 向导有两种:
|
||
- 独立向导页 `wizard/index.vue`:`下一步`仅切换步骤(`next()`),提交动作分别由页面内的`提交`按钮触发(`submitActivity/submitIssue/submitRewards`)。
|
||
- 管理页弹窗向导 `manage/index.vue`:`下一步`会调用创建接口然后推进步骤(`nextWizard()`)。
|
||
|
||
## 可能原因
|
||
- 使用了独立向导页,点击`下一步`未触发API(预期行为需用`提交`按钮)。
|
||
- 请求未通过权限:后端要求超级管理员(`ctx.SessionUserInfo().IsSuper == 1`,`internal/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 `禁止操作`。
|
||
- `name`与`activity_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`,使“下一步”即提交。
|
||
- 在按钮文案上提示“提交并进入下一步”,并在未填必填项时给出校验提示(阻止推进)。
|
||
|
||
## 验收标准
|
||
- 在管理端,创建活动流程点击`提交`或(改造后)点击`下一步`能成功发起请求并进入下一步;错误时有明确提示。
|
||
- 非超级管理员或参数缺失时,前端能正确显示后端返回的错误信息。 |