feat(viral-video): 文案视频时长改为15-30秒滚轮picker #2196

Merged
xiaoxia merged 4 commits from feat/vv-duration-wheel-picker into develop 2026-10-05 16:30:26 +08:00
Owner

背景

用户反馈原 Select 下拉选择时长不直观,参考移动端滚轮 picker 样式改为竖屏滚轮。

改动

1. 新增通用组件 DurationWheelPicker(src/components/common/DurationWheelPicker/)

  • 原生 scroll + scroll-snap 实现,零额外依赖
  • 浅色紫主题:选中行 #7c3aed 紫字加粗+放大,背景 #f5f0ff 浅紫高亮条+上下紫色分隔线
  • 上下两端渐变淡出遮罩,居中指示器
  • 支持触摸滑动 / 鼠标滚轮 / 点击跳转,松手后自动吸附最近项
  • 可配置 min/max/step/unit/height/disabled,value 受控

2. 爆款视频 Step1「文案视频时长」替换原 Select 下拉

  • 范围:15–30 秒,步长 1 秒,共 16 档
  • 默认值:15s → 20s
  • label 右侧紫色小徽章实时显示「N秒」当前值
  • 底部浅灰提示「上下滑动选择 15–30 秒视频时长」
  • 切换视频模型时仍按模型 max_duration 自动 clamp:seedance-2.5 支持 30s;其他模型 max_duration=15 切回时自动落到 15s

3. 积分显示恢复(已在 PR #2193 d36cc09b 合入,本 PR 不重复)

  • Header PointsBadge / 积分中心入口 / 生成页积分预校验 / 订阅页积分 Tab 全部恢复

样式

  • 沿用紫白主题 (#7c3aed/#f5f0ff/#fafafe/#e5e7eb/#9ca3af),不做深色
  • CSS 新增 .vv-label-value 紫色小徽章

验证

  • tsc --noEmit 通过
  • vite build 通过(ViralVideoPage-BuptPNx9.js 包含所有 dw-picker-* 类名)
  • prettier 已格式化
## 背景 用户反馈原 Select 下拉选择时长不直观,参考移动端滚轮 picker 样式改为竖屏滚轮。 ## 改动 ### 1. 新增通用组件 DurationWheelPicker(src/components/common/DurationWheelPicker/) - 原生 scroll + scroll-snap 实现,零额外依赖 - 浅色紫主题:选中行 #7c3aed 紫字加粗+放大,背景 #f5f0ff 浅紫高亮条+上下紫色分隔线 - 上下两端渐变淡出遮罩,居中指示器 - 支持触摸滑动 / 鼠标滚轮 / 点击跳转,松手后自动吸附最近项 - 可配置 min/max/step/unit/height/disabled,value 受控 ### 2. 爆款视频 Step1「文案视频时长」替换原 Select 下拉 - 范围:15–30 秒,步长 1 秒,共 16 档 - 默认值:15s → 20s - label 右侧紫色小徽章实时显示「N秒」当前值 - 底部浅灰提示「上下滑动选择 15–30 秒视频时长」 - 切换视频模型时仍按模型 max_duration 自动 clamp:seedance-2.5 支持 30s;其他模型 max_duration=15 切回时自动落到 15s ### 3. 积分显示恢复(已在 PR #2193 d36cc09b 合入,本 PR 不重复) - Header PointsBadge / 积分中心入口 / 生成页积分预校验 / 订阅页积分 Tab 全部恢复 ### 样式 - 沿用紫白主题 (#7c3aed/#f5f0ff/#fafafe/#e5e7eb/#9ca3af),不做深色 - CSS 新增 .vv-label-value 紫色小徽章 ## 验证 - tsc --noEmit 通过 - vite build 通过(ViralVideoPage-BuptPNx9.js 包含所有 dw-picker-* 类名) - prettier 已格式化
xiaoxia added 1 commit 2026-10-05 15:28:20 +08:00
feat(viral-video): 文案视频时长改为15-30秒滚轮picker
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 / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API 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 / PR Build Web Image (pull_request) Successful in 2m2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m25s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m15s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m20s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 3m51s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m9s
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
AI Code Review / AI Code Review (pull_request) Successful in 7m0s
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
73da37b6cc
- 新增通用 DurationWheelPicker 组件(scroll-snap 原生滚动,无额外依赖)
  * 浅色紫主题:选中行 #7c3aed 紫字加粗+#f5f0ff 浅紫背景条+上下分隔线
  * 支持上下滑动/点击/鼠标滚轮,松手自动吸附到最近秒
  * 上下两端渐变淡出,移动端流畅
  * 可配置 min/max/step/height/unit/disabled
- 爆款视频 Step1「文案视频时长」替换原 Select 下拉:
  * 范围 15–30 秒,步长 1 秒
  * 默认值从 15 秒改为 20 秒
  * label 右侧实时紫色徽章显示「N秒」当前值
  * 底部提示「上下滑动选择 15–30 秒视频时长」
- CSS 新增 .vv-label-value 紫色小徽章样式
- 切换视频模型时仍按模型 max_duration 自动 clamp(seedance-2.5 支持 30s,其他 max=15 模型切回时自动落到 15s)

注:积分 UI 恢复(ENABLE_CREDIT_SYSTEM=true)已在 PR #2193 合入 develop,本 PR 不再包含。

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2196 | | 预览链接 | [https://pr-2196.preview.xiaoxiajianji.com](https://pr-2196.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-10-05 15:35:52 +08:00
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m22s
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
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m21s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m41s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m14s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m10s
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 / Validate - Style (pull_request) Failing after 5m6s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m22s
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 / PR Build Worker Image (pull_request) Successful in 1m16s
AI Code Review / AI Code Review (pull_request) Successful in 6m46s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m34s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m30s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 3m38s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m11s
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 / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m21s
5d0d87806b
xiaoxia added 1 commit 2026-10-05 15:50:04 +08:00
fix(lint): DurationWheelPicker options 使用 useMemo 包裹以满足 exhaustive-deps
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 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
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 / 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 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 / PR Build Worker Image (pull_request) Successful in 1m30s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m33s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m52s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m0s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m8s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m20s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m14s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 3m23s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m22s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 4m15s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 7m6s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m35s
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) Failing after 1s
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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m14s
AI Code Review / AI Code Review (pull_request) Successful in 10m7s
8d15c5fa10
xiaoxia added 1 commit 2026-10-05 16:16:15 +08:00
Merge remote-tracking branch 'origin/develop' into feat/vv-duration-wheel-picker
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m18s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m11s
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 / 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 / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m11s
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 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 / Frontend Unit Tests (pull_request) Successful in 1m49s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m15s
AI Code Review / AI Code Review (pull_request) Successful in 6m34s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m18s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 4m25s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m19s
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) Failing after 1s
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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 7m49s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 38s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 55s
2e1f3a9a1c
xiaoxia merged commit 3eef497dfe into develop 2026-10-05 16:30:26 +08:00

🗑️ 预览环境已清理

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

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

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