feat: 预览播放器手机风格视觉改造 — 9:16竖屏外框+毛玻璃控制条 #1494

Merged
auto-approve-bot merged 1 commits from feat/phone-style-preview into develop 2026-08-25 13:01:31 +08:00
Owner

改动

generate.css

  • 右侧栏 320px → 400px
  • .xx-generate-right-col 改为 align-items: center 水平居中手机框,去掉之前的 height/min-height

FrontendPreviewPlayer.tsx

  • 容器改为 aspectRatio: 9/16 + maxWidth: 360px,锁定竖屏比例
  • borderRadius: 28 + boxShadow 营造手机外框质感
  • 中央播放按钮 72px 圆形毛玻璃(backdropFilter blur),hover 缩放
  • 控制条毛玻璃效果,白色进度条,圆形小播放按钮
  • 片段指示器移至右上角,胶囊形状
  • 空状态/错误/加载状态也在 9:16 手机框内居中显示
  • 视频 objectFit: contain 保持不变
## 改动 ### generate.css - 右侧栏 320px → 400px - `.xx-generate-right-col` 改为 `align-items: center` 水平居中手机框,去掉之前的 height/min-height ### FrontendPreviewPlayer.tsx - 容器改为 `aspectRatio: 9/16` + `maxWidth: 360px`,锁定竖屏比例 - `borderRadius: 28` + `boxShadow` 营造手机外框质感 - 中央播放按钮 72px 圆形毛玻璃(backdropFilter blur),hover 缩放 - 控制条毛玻璃效果,白色进度条,圆形小播放按钮 - 片段指示器移至右上角,胶囊形状 - 空状态/错误/加载状态也在 9:16 手机框内居中显示 - 视频 objectFit: contain 保持不变
xiaoxia added 1 commit 2026-08-25 12:51:04 +08:00
feat: 预览播放器手机风格视觉改造 — 9:16竖屏外框+毛玻璃控制条+精致播放按钮
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 / Deploy Staging (Watchtower auto-deploy) (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
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 50s
CI/CD Pipeline / Unit 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
AI Code Review / AI Code Review (pull_request) Successful in 1m25s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m32s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m46s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m50s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m6s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m16s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m1s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m52s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m24s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m33s
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) Successful in 6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m0s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 1m8s
e3b18eba39
- generate.css: 右侧栏 320px→400px,改为 align-items:center 水平居中手机框
- FrontendPreviewPlayer: 容器改为 aspectRatio 9/16 + maxWidth 360px
  - borderRadius 28px + boxShadow 营造手机外框质感
  - 中央播放按钮 72px 圆形毛玻璃,hover 缩放效果
  - 控制条毛玻璃效果(backdropFilter blur),白色进度条
  - 片段指示器移至右上角胶囊形状
  - 空状态/错误状态也在 9:16 手机框内居中显示
- 视频保持 objectFit:contain,竖屏填满横屏居中黑边
Collaborator

代码审查结果 - PR #1494

⚚️ 问题(1个需要修改)

  1. FrontendPreviewPlayer.tsx 第491-505, 595-605行:React 状态与 DOM 直接操作冲突导致 Hover 交互失效。
    • 原因:代码中使用 onMouseEnteronMouseLeave 直接修改 e.currentTarget.style。由于这是一个视频播放器组件,会随着播放进度(currentTime 等)频繁触发重渲染。React 在重渲染时会重新应用 JSX 中定义的静态 style 属性,这会直接覆盖通过事件监听器手动设置的 DOM 样式。
  • 后果:用户鼠标悬停时,按钮可能会出现闪烁(瞬间放大后立即恢复原状)或者 Hover 效果完全不可见,严重影响交互体验。
  • 建议:删除 onMouseEnter/Leave 中的样式修改逻辑,改用 CSS :hover 伪类(推荐),或者使用 React useState 来控制 hover 状态。

💡 建议(1个可选)

  1. FrontendPreviewPlayer.tsx:建议将内联样式还原为 CSS 类或使用 CSS-in-JS 方案。
    • 说明:本次修改将大量样式从 CSS 类迁移到了 JSX 的内联 style 对象中。这导致组件代码变得非常冗长,降低了可读性,且不利于样式的复用和统一维护(如主题切换)。建议将样式逻辑保留在 .css 文件中,仅对动态变化的样式属性使用内联写法。

格式检查通过 | 逻辑审查需修改 | 性能无明显问题


🤖 由 AI 代码审查机器人自动生成 | 2026-08-25 04:52:29 | 模型:

## 代码审查结果 - PR #1494 ### ⚚️ 问题(1个需要修改) 1. **FrontendPreviewPlayer.tsx 第491-505, 595-605行**:React 状态与 DOM 直接操作冲突导致 Hover 交互失效。 - **原因**:代码中使用 `onMouseEnter` 和 `onMouseLeave` 直接修改 `e.currentTarget.style`。由于这是一个视频播放器组件,会随着播放进度(`currentTime` 等)频繁触发重渲染。React 在重渲染时会重新应用 JSX 中定义的静态 `style` 属性,这会直接覆盖通过事件监听器手动设置的 DOM 样式。 - **后果**:用户鼠标悬停时,按钮可能会出现闪烁(瞬间放大后立即恢复原状)或者 Hover 效果完全不可见,严重影响交互体验。 - **建议**:删除 `onMouseEnter/Leave` 中的样式修改逻辑,改用 CSS `:hover` 伪类(推荐),或者使用 React `useState` 来控制 hover 状态。 ### 💡 建议(1个可选) 1. **FrontendPreviewPlayer.tsx**:建议将内联样式还原为 CSS 类或使用 CSS-in-JS 方案。 - **说明**:本次修改将大量样式从 CSS 类迁移到了 JSX 的内联 `style` 对象中。这导致组件代码变得非常冗长,降低了可读性,且不利于样式的复用和统一维护(如主题切换)。建议将样式逻辑保留在 `.css` 文件中,仅对动态变化的样式属性使用内联写法。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-25 04:52:29 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1494 | | 预览链接 | [https://pr-1494.preview.xiaoxiajianji.com](https://pr-1494.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-08-25 12:53:57 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit d79cf3726b into develop 2026-08-25 13:01:31 +08:00
auto-approve-bot deleted branch feat/phone-style-preview 2026-08-25 13:01:31 +08:00

🗑️ 预览环境已清理

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

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

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