## 现状确认
- 后端接口已对接：`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`，使“下一步”即提交。
- 在按钮文案上提示“提交并进入下一步”，并在未填必填项时给出校验提示（阻止推进）。

## 验收标准
- 在管理端，创建活动流程点击`提交`或（改造后）点击`下一步`能成功发起请求并进入下一步；错误时有明确提示。
- 非超级管理员或参数缺失时，前端能正确显示后端返回的错误信息。