feat(voices): 配音素材卡片 UI 对齐预置音色 + 删除常驻 + 批量删除 #1545

Merged
auto-approve-bot merged 1 commits from feat/material-card-ui-batch-delete into develop 2026-08-29 23:21:00 +08:00
Owner

改动

配音库「配音素材」tab:

  1. 卡片 UI 对齐预置音色:白底圆角横向布局(复用 xx-voice-card 体系)——左侧紫色圆形 AudioOutlined 图标,右侧文件名(粗体)+ 副标题(文件大小 · 时长),波形条 + 底部播放控件与预置音色卡片视觉一致;移除紫色大缩略图块、时长角标,旧 vmat-thumb/vmat-duration 等死代码 CSS 一并清理
  2. 删除按钮常驻:每张卡片右上角垃圾桶图标常态可见,hover 加深 danger 色;stopPropagation + 现有 Modal.confirm 二次确认
  3. 批量删除:tab 顶部批量栏(全选 checkbox + 已选 N 项 + danger 批量删除按钮,N=0/删除中置灰);卡片左上角 checkbox,选中态紫色边框高亮;确认后循环调 deleteAsset(无批量接口),单个失败不中断,完成 toast「已批量删除 X/N 个素材」并 invalidate voice-materials + assets/voice
  4. 删除正在播放的素材自动停止播放(单个/批量均接入 stopPlayback)

不动

  • 真实播放 hook、TTS 试听逻辑(PR #1544 已上线)
  • 预置音色/克隆音色 tab
  • pages/voice-materials/ 独立素材库页面(仅作参考)
  • 后端无改动

验收

  • tsc / ESLint(--max-warnings=0) / 单测 12 条全过
  • staging:卡片白底横向布局与预置音色一致;删除按钮常驻;全选+批量删除生效;删除播放中素材声音停止
## 改动 配音库「配音素材」tab: 1. **卡片 UI 对齐预置音色**:白底圆角横向布局(复用 xx-voice-card 体系)——左侧紫色圆形 AudioOutlined 图标,右侧文件名(粗体)+ 副标题(文件大小 · 时长),波形条 + 底部播放控件与预置音色卡片视觉一致;移除紫色大缩略图块、时长角标,旧 vmat-thumb/vmat-duration 等死代码 CSS 一并清理 2. **删除按钮常驻**:每张卡片右上角垃圾桶图标常态可见,hover 加深 danger 色;stopPropagation + 现有 Modal.confirm 二次确认 3. **批量删除**:tab 顶部批量栏(全选 checkbox + 已选 N 项 + danger 批量删除按钮,N=0/删除中置灰);卡片左上角 checkbox,选中态紫色边框高亮;确认后循环调 deleteAsset(无批量接口),单个失败不中断,完成 toast「已批量删除 X/N 个素材」并 invalidate voice-materials + assets/voice 4. **删除正在播放的素材自动停止播放**(单个/批量均接入 stopPlayback) ## 不动 - 真实播放 hook、TTS 试听逻辑(PR #1544 已上线) - 预置音色/克隆音色 tab - pages/voice-materials/ 独立素材库页面(仅作参考) - 后端无改动 ## 验收 - [x] tsc / ESLint(--max-warnings=0) / 单测 12 条全过 - [ ] staging:卡片白底横向布局与预置音色一致;删除按钮常驻;全选+批量删除生效;删除播放中素材声音停止
xiaoxia added 1 commit 2026-08-29 22:54:40 +08:00
feat(voices): 配音素材卡片 UI 对齐预置音色 + 删除按钮常驻 + 批量删除
CI/CD Pipeline / Check push changed paths (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 / 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 / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m14s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m27s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m16s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m43s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 5m4s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 5m10s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 46s
AI Code Review / AI Code Review (pull_request) Successful in 9m33s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 11m53s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 13m9s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 20m53s
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 24s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 3m50s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 4m57s
ec689d27ba
- 卡片重做为预置音色卡片样式(xx-voice-card 体系):白底圆角横向布局,
  左侧紫色圆形 AudioOutlined 图标,右侧文件名+副标题(大小·时长),
  波形条+播放控件视觉与预置音色卡片一致;移除紫色大缩略图/时长角标
- 删除按钮改为常驻右上角(hover 加深为 danger 色),不再 hover 才出现
- 新增批量删除:tab 顶部批量栏(全选 checkbox+已选 N 项+danger 批量删除按钮),
  卡片左上角 checkbox 选中态紫色边框高亮;Modal.confirm 二次确认后循环
  deleteAsset,单个失败不中断,完成后 toast X/N 并 invalidate 列表
- 删除正在播放的素材时停止播放(单个/批量均接入 stopPlayback)
- 清理旧 vmat-thumb/vmat-duration/vmat-card-actions 等死代码 CSS;
  播放/TTS 试听逻辑不动;voice-materials 独立页面不动
auto-approve-bot approved these changes 2026-08-29 22:59:45 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1545 | | 预览链接 | [https://pr-1545.preview.xiaoxiajianji.com](https://pr-1545.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 6422472ef3 into develop 2026-08-29 23:21:00 +08:00
auto-approve-bot deleted branch feat/material-card-ui-batch-delete 2026-08-29 23:21:01 +08:00

🗑️ 预览环境已清理

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

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

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