fix(ts): 修复配音素材Tab的API类型不匹配问题
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m27s
AI Code Review / AI Code Review (pull_request) Successful in 2m53s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 4m8s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 5m12s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 34s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 1414h27m17s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 1414h27m17s
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Failing after 1414h27m33s
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Failing after 1414h27m34s
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Failing after 1414h27m35s
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Failing after 1414h27m35s
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Failing after 1414h27m35s
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Failing after 1414h27m37s
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Failing after 1414h27m37s
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Failing after 1414h27m37s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1414h59m24s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Failing after 1414h59m40s
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Failing after 1414h59m42s
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1414h59m42s

This commit is contained in:
2026-07-19 17:01:42 +08:00
parent 1ad3a5b3fa
commit 14c73b46a2
2 changed files with 11 additions and 5 deletions
+7 -1
View File
@@ -184,13 +184,19 @@ export const getAssetsByKind = async (
gender?: string
style?: string
tag_ids?: string[]
limit?: number
page?: number
page_size?: number
},
): Promise<AssetItem[]> => {
const params: Record<string, string> = { kind }
const params: Record<string, string | number> = { kind }
if (filters?.keyword) params.keyword = filters.keyword
if (filters?.gender) params.gender = filters.gender
if (filters?.style) params.style = filters.style
if (filters?.tag_ids?.length) params.tag_ids = filters.tag_ids.join(",")
if (filters?.limit) params.limit = filters.limit
if (filters?.page) params.page = filters.page
if (filters?.page_size) params.page_size = filters.page_size
const response = await apiClient.get("/assets", { params })
return response.data.items || []
}
+4 -4
View File
@@ -826,7 +826,7 @@ const VoiceLibrary: React.FC = () => {
)
const presetCount = unifiedStats?.preset_count ?? presetData?.total ?? 0
const cloneCount = unifiedStats?.clone_count ?? cloneData?.total ?? 0
const materialCount = materialData?.total ?? (materialData?.items?.length || 0)
const materialCount = materialData?.length ?? 0
const filteredPreset = useMemo(() => {
let list = presetVoices
@@ -1175,9 +1175,9 @@ const VoiceLibrary: React.FC = () => {
)}
{/* 卡片列表 */}
{!materialLoading && (materialData?.items?.length || 0) > 0 && (
{!materialLoading && (materialData?.length || 0) > 0 && (
<div className="xx-voice-grid">
{(materialData?.items || []).map((asset: AssetItem) => {
{(materialData || []).map((asset: AssetItem) => {
const duration = (asset.metadata?.duration as number) || 0
const minutes = Math.floor(duration / 60)
const seconds = Math.floor(duration % 60)
@@ -1208,7 +1208,7 @@ const VoiceLibrary: React.FC = () => {
)}
{/* 空状态 */}
{!materialLoading && (materialData?.items?.length || 0) === 0 && (
{!materialLoading && (materialData?.length || 0) === 0 && (
<div className="xx-voices-empty">
<div className="xx-voices-empty-icon">
<SoundOutlined />