fix(cover): 系统模板套用走新建路径 + 403/401错误提示增强 #2044

Merged
auto-approve-bot merged 1 commits from fix/cover-templates-403-20260925 into develop 2026-09-25 22:47:20 +08:00
Owner

背景

AI数字人页面封面功能报403错误,排查发现系统模板编辑/保存时触发后端"系统模板不可修改"403。

修改

  1. CoverSettingsModal: 系统模板按钮文案从"编辑"改为"套用",语义更清晰
  2. useSharedCover.handleEditTemplate: 系统模板传入时自动清掉 id + is_system=false,让 handleSaveTemplate 走 create 分支(基于系统模板新建自定义模板),而非 update 系统模板触发403
  3. 错误处理增强: 所有CRUD操作的catch块提取axios response的status/detail/message:
    • 401 → "登录已过期,请刷新页面重新登录"
    • 403 → "权限不足:{detail}"
    • 其他 → 透传后端detail信息
  4. console.error 补充 status 和 detail 信息,便于后续问题定位

前端已确认

  • GET/POST/PUT/DELETE /api/v1/cover-templates 均使用统一 @/api/client 实例,Authorization header 由拦截器自动添加
  • CORS OPTIONS预检staging返回200
  • 不带token访问返回401(认证中间件工作正常)

待后端协查

GET列表接口不涉及"系统模板不可修改"判断,若仍报403需要后端查看staging API日志定位(已at后端agent)。

## 背景 AI数字人页面封面功能报403错误,排查发现系统模板编辑/保存时触发后端"系统模板不可修改"403。 ## 修改 1. **CoverSettingsModal**: 系统模板按钮文案从"编辑"改为"套用",语义更清晰 2. **useSharedCover.handleEditTemplate**: 系统模板传入时自动清掉 id + is_system=false,让 handleSaveTemplate 走 create 分支(基于系统模板新建自定义模板),而非 update 系统模板触发403 3. **错误处理增强**: 所有CRUD操作的catch块提取axios response的status/detail/message: - 401 → "登录已过期,请刷新页面重新登录" - 403 → "权限不足:{detail}" - 其他 → 透传后端detail信息 4. **console.error** 补充 status 和 detail 信息,便于后续问题定位 ## 前端已确认 - GET/POST/PUT/DELETE /api/v1/cover-templates 均使用统一 @/api/client 实例,Authorization header 由拦截器自动添加 - CORS OPTIONS预检staging返回200 - 不带token访问返回401(认证中间件工作正常) ## 待后端协查 GET列表接口不涉及"系统模板不可修改"判断,若仍报403需要后端查看staging API日志定位(已at后端agent)。
auto-approve-bot approved these changes 2026-09-25 22:22:45 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-25 22:22:45 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

项目 详情
PR号 #2044
预览链接 https://pr-2044.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2044 | | 预览链接 | [https://pr-2044.preview.xiaoxiajianji.com](https://pr-2044.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
xiaoxia added 1 commit 2026-09-25 22:36:24 +08:00
fix(cover): 系统模板点击'套用'走新建路径;403/401错误提示增强
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m14s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m25s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m20s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m53s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m52s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m4s
AI Code Review / AI Code Review (pull_request) Successful in 6m47s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m14s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 9m30s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 35s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m10s
0aea791c3d
1. CoverSettingsModal: 系统模板按钮从'编辑'改为'套用',语义更清晰
2. useSharedCover.handleEditTemplate: 系统模板传入时自动清掉id+is_system,让handleSaveTemplate走create分支而非update,避免触发后端'系统模板不可修改'403
3. useSharedCover错误处理增强:提取axios response的detail/message信息,区分401(登录过期)/403(权限不足)/其他错误,提示更明确
4. 所有CRUD操作的console.error补充status和detail信息,便于后续问题定位
xiaoxia force-pushed fix/cover-templates-403-20260925 from 79d4cbffc0 to 0aea791c3d 2026-09-25 22:36:24 +08:00 Compare
auto-approve-bot merged commit 407516e78b into develop 2026-09-25 22:47:20 +08:00
auto-approve-bot deleted branch fix/cover-templates-403-20260925 2026-09-25 22:47:22 +08:00

🗑️ 预览环境已清理

PR #2044 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #2044 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.