diff --git a/src/components/dialog/TransferQueueDialog.vue b/src/components/dialog/TransferQueueDialog.vue index 6d590c97..8cc53956 100644 --- a/src/components/dialog/TransferQueueDialog.vue +++ b/src/components/dialog/TransferQueueDialog.vue @@ -58,9 +58,18 @@ function getStateColor(state: string) { else return 'error' } -// 从dataList中提取所有的媒体信息 +// 从dataList中提取所有的媒体信息,合并相同title_year的记录 const mediaList = computed(() => { - return dataList.value.map(item => item.media) + const mediaMap = new Map() + + dataList.value.forEach(item => { + const titleYear = item.media.title_year || '' + if (!mediaMap.has(titleYear)) { + mediaMap.set(titleYear, item.media) + } + }) + + return Array.from(mediaMap.values()) }) // 按media计算总数和完成数,返回 x/x @@ -74,11 +83,17 @@ function getMediaCount(title_year: string) { return `${completed} / ${total}` } -// 根据媒体信息获取对应的整理任务 +// 根据媒体信息获取对应的整理任务,合并相同title_year的所有任务 const activeTasks = computed(() => { - return dataList.value.find(item => item.media.title_year === activeTab.value)?.tasks + const tasks = dataList.value.filter(item => item.media.title_year === activeTab.value).flatMap(item => item.tasks) + return tasks }) +// 根据媒体title_year获取对应的任务列表 +function getTasksByMedia(title_year: string) { + return dataList.value.filter(item => item.media.title_year === title_year).flatMap(item => item.tasks) +} + // 计算整体进度 const overallProgressComputed = computed(() => { if (dataList.value.length === 0) return 0 @@ -298,7 +313,7 @@ onUnmounted(() => { - + {{ task.fileitem.name }} {{ t('dialog.transferQueue.sizeTitle') }}:{{ formatFileSize(task.fileitem.size || 0) }}