fix: use null for empty episode group selection

This commit is contained in:
jxxghp
2026-05-25 05:33:26 +08:00
parent c6981e9955
commit 1674f15d7c
2 changed files with 15 additions and 8 deletions
+1 -1
View File
@@ -1322,7 +1322,7 @@ export interface TransferForm {
// 媒体库类别子目录 // 媒体库类别子目录
library_category_folder?: boolean library_category_folder?: boolean
// 剧集组编号 // 剧集组编号
episode_group?: string episode_group?: string | null
// 预览模式 // 预览模式
preview?: boolean preview?: boolean
} }
+14 -7
View File
@@ -186,9 +186,15 @@ function episodeGroupItemProps(item: { title: string; subtitle?: string }) {
} }
} }
// 剧集组选项,保留空值作为不指定剧集组。 interface EpisodeGroupOption {
const episodeGroupOptions = computed(() => { title: string
const options = ( subtitle: string
value: string | null
}
// 剧集组选项,保留 null 作为不指定剧集组。
const episodeGroupOptions = computed<EpisodeGroupOption[]>(() => {
const options: EpisodeGroupOption[] = (
episodeGroups.value as { id: string; name: string; group_count: number; episode_count: number }[] episodeGroups.value as { id: string; name: string; group_count: number; episode_count: number }[]
).map(item => { ).map(item => {
return { return {
@@ -204,7 +210,7 @@ const episodeGroupOptions = computed(() => {
options.unshift({ options.unshift({
title: t('dialog.reorganize.defaultEpisodeGroup'), title: t('dialog.reorganize.defaultEpisodeGroup'),
subtitle: t('dialog.reorganize.defaultEpisodeGroupHint'), subtitle: t('dialog.reorganize.defaultEpisodeGroupHint'),
value: '', value: null,
}) })
return options return options
@@ -264,6 +270,7 @@ const transferForm = reactive<TransferForm>({
min_filesize: 0, min_filesize: 0,
scrape: false, scrape: false,
from_history: false, from_history: false,
episode_group: null,
}) })
// 所有媒体库目录 // 所有媒体库目录
@@ -316,7 +323,7 @@ watch(
watch( watch(
() => transferForm.tmdbid, () => transferForm.tmdbid,
tmdbid => { tmdbid => {
transferForm.episode_group = '' transferForm.episode_group = null
episodeGroups.value = [] episodeGroups.value = []
if (episodeGroupQueryTimer) clearTimeout(episodeGroupQueryTimer) if (episodeGroupQueryTimer) clearTimeout(episodeGroupQueryTimer)
if (transferForm.type_name !== '电视剧' || mediaSource.value !== 'themoviedb') return if (transferForm.type_name !== '电视剧' || mediaSource.value !== 'themoviedb') return
@@ -332,7 +339,7 @@ watch(
getEpisodeGroups(transferForm.tmdbid) getEpisodeGroups(transferForm.tmdbid)
return return
} }
transferForm.episode_group = '' transferForm.episode_group = null
episodeGroups.value = [] episodeGroups.value = []
}, },
) )
@@ -613,7 +620,7 @@ function createTransferPayload(options: { item?: FileItem; items?: FileItem[]; l
...transferForm, ...transferForm,
fileitem: sourceItem, fileitem: sourceItem,
logid: options.logid ?? 0, logid: options.logid ?? 0,
episode_group: transferForm.episode_group?.trim() || undefined, episode_group: transferForm.episode_group?.trim() || null,
} }
if (options.items?.length) { if (options.items?.length) {