diff --git a/src/components/dialog/ReorganizeDialog.vue b/src/components/dialog/ReorganizeDialog.vue index 994b957e..81ab00a7 100644 --- a/src/components/dialog/ReorganizeDialog.vue +++ b/src/components/dialog/ReorganizeDialog.vue @@ -6,7 +6,7 @@ import { storageOptions } from '@/api/constants' import { numberValidator } from '@/@validators' import { useDisplay } from 'vuetify' import ProgressDialog from './ProgressDialog.vue' -import { FileItem } from '@/api/types' +import { FileItem, TransferDirectoryConf } from '@/api/types' // 显示器宽度 const display = useDisplay() @@ -87,13 +87,42 @@ const transferForm = reactive({ library_category_folder: false, }) -// 下载路径更新 -function updateTargetPath(value: string) { - if (value !== transferForm.target_path) { - transferForm.target_path = value // 仅在值真正改变时更新 +// 所有媒体库目录 +const directories = ref([]) + +// 查询目录 +async function loadDirectories() { + try { + const result: { [key: string]: any } = await api.get('system/setting/Directories') + directories.value = result.data?.value ?? [] + } catch (error) { + console.log(error) } } +// 目的目录下拉框 +const targetDirectories = computed(() => { + const libraryDirectories = directories.value.map(item => item.library_path) + return [...new Set(libraryDirectories)] +}) + +// 监听目的路径变化,配置默认值 +watch( + () => transferForm.target_path, + async newPath => { + if (newPath) { + const directory = directories.value.find(item => item.library_path === newPath) + if (directory) { + transferForm.target_storage = directory.storage ?? 'local' + transferForm.transfer_type = directory.transfer_type ?? '' + transferForm.scrape = directory.scraping ?? false + transferForm.library_category_folder = directory.library_category_folder ?? false + transferForm.library_type_folder = directory.library_type_folder ?? false + } + } + } +) + // 使用SSE监听加载进度 function startLoadingProgress() { progressText.value = '请稍候 ...' @@ -166,6 +195,10 @@ async function handleTransferLog(logid: number) { console.log(e) } } + +onMounted(() => { + loadDirectories() +})