fix: 预览生成标题参数改用title_config对象匹配后端Schema #1381

Closed
xiaoxia wants to merge 1 commits from fix/title-config-param-mapping into develop
Owner

问题

useStep5Preview.ts 发送预览请求时传递的是 title_texttitle_font 等独立字段,但后端 CreatePreviewGenerationTaskRequest 期望接收 title_config: dict 对象。前端字段不在后端 Schema 中,被 Pydantic 自动忽略,导致标题永远是空的。

改动

1. apps/web/src/api/generation/types.ts

  • 删除 CreatePreviewRequest 中 8 个独立 title_* 字段
  • 新增 title_config 嵌套对象(text/font/font_size/font_color/position/bold/stroke/shadow)

2. apps/web/src/pages/generate/hooks/useStep5Preview.ts

  • generatePreviewcreatePreview 调用参数从独立字段改为 title_config 对象
  • 字段映射:titleSettings.size → title_config.font_size
  • 仅当 titleSettings.title 非空时传递 title_config,否则为 undefined

注意

  • 纯前端改动,后端已正确接收 title_config 并传递给 Worker
  • useEffectprevDepsRef 和 key 计算逻辑不变
## 问题 useStep5Preview.ts 发送预览请求时传递的是 `title_text`、`title_font` 等独立字段,但后端 `CreatePreviewGenerationTaskRequest` 期望接收 `title_config: dict` 对象。前端字段不在后端 Schema 中,被 Pydantic 自动忽略,导致标题永远是空的。 ## 改动 ### 1. `apps/web/src/api/generation/types.ts` - 删除 `CreatePreviewRequest` 中 8 个独立 `title_*` 字段 - 新增 `title_config` 嵌套对象(text/font/font_size/font_color/position/bold/stroke/shadow) ### 2. `apps/web/src/pages/generate/hooks/useStep5Preview.ts` - `generatePreview` 中 `createPreview` 调用参数从独立字段改为 `title_config` 对象 - 字段映射:`titleSettings.size → title_config.font_size` - 仅当 `titleSettings.title` 非空时传递 `title_config`,否则为 `undefined` ## 注意 - 纯前端改动,后端已正确接收 `title_config` 并传递给 Worker - `useEffect` 中 `prevDepsRef` 和 key 计算逻辑不变
xiaoxia added the frontendP1 labels 2026-08-15 17:48:54 +08:00
xiaoxia added 1 commit 2026-08-15 17:48:54 +08:00
fix: 预览生成标题参数改用title_config对象匹配后端Schema
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
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 / Check if frontend-only change (pull_request) Successful in 58s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 43s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 45s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m49s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m51s
AI Code Review / AI Code Review (pull_request) Successful in 2m0s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m59s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m45s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 1m11s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 40s
ba8d0afa3c
- CreatePreviewRequest: 删除8个独立title_*字段,改为title_config对象
- useStep5Preview: generatePreview传参改为title_config嵌套结构
- 字段映射: titleSettings.size → title_config.font_size
- 修复标题配置被Pydantic忽略导致预览视频/封面无标题的问题

🚀 预览环境已部署

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

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

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

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

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

代码审查结果 - PR #1381

⚠️ 问题(0个需要修改)

💡 建议(0个可选)


格式检查通过 | 逻辑审查通过 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-08-15 09:50:55 | 模型:

## 代码审查结果 - PR #1381 ### ⚠️ 问题(0个需要修改) ### 💡 建议(0个可选) --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-15 09:50:55 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia closed this pull request 2026-08-16 16:59:40 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #1381 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
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 / Check if frontend-only change (pull_request) Successful in 58s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 43s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 45s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m49s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m51s
AI Code Review / AI Code Review (pull_request) Successful in 2m0s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m59s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m45s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 1m11s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 40s

Pull request closed

Sign in to join this conversation.