diff --git a/src/components/dialog/ReorganizeDialog.vue b/src/components/dialog/ReorganizeDialog.vue index 9bea9b05..b6702e2a 100644 --- a/src/components/dialog/ReorganizeDialog.vue +++ b/src/components/dialog/ReorganizeDialog.vue @@ -13,7 +13,7 @@ const display = useDisplay() // 输入参数 const props = defineProps({ - path: String, + paths: Array, target: String, logids: Array, }) @@ -50,7 +50,18 @@ const progressText = ref('请稍候 ...') // 整理进度 const progressValue = ref(0) -// 文件转移表单 +// 标题 +const dialogTitle = computed(() => { + if (props.paths) { + if (props.paths.length > 1) return `整理 - 共 ${props.paths.length} 项` + return `整理 - ${props.paths[0]}` + } else if (props.logids) { + return `整理 - 共 ${props.logids.length} 项` + } + return '手动整理' +}) + +// 表单 const transferForm = reactive({ logid: 0, path: '', @@ -77,12 +88,6 @@ const targetDirectories = computed(() => { return [...new Set(directories)] }) -// 监听输入变化 -watchEffect(() => { - transferForm.path = props.path ?? '' - transferForm.target = props.target ?? null -}) - // 监听目的路径变化,自动查询目录的刮削配置 watch(transferForm, async () => { if (transferForm.target) { @@ -117,47 +122,25 @@ function stopLoadingProgress() { } // 整理文件 -// eslint-disable-next-line sonarjs/cognitive-complexity async function transfer() { - if (!props.logids && !props.path) return + if (!props.logids && !props.paths) return // 显示进度条 progressDialog.value = true // 开始监听进度 startLoadingProgress() - if (props.path) { - // 文件整理 - try { - const result: { [key: string]: any } = await api.post( - 'transfer/manual', - {}, - { - params: transferForm, - }, - ) - // 显示结果 - if (result.success) $toast.success(`${props.path} 整理完成!`) - else $toast.error(`${props.path} 整理失败:${result.message}!`) - } catch (e) { - console.log(e) + // 文件整理 + if (props.paths) { + for (const path of props.paths) { + await handleTransfer(path) } - } else if (props.logids) { - // 日志整理 + } + + // 日志整理 + if (props.logids) { for (const logid of props.logids) { - transferForm.logid = logid - try { - const result: { [key: string]: any } = await api.post( - 'transfer/manual', - {}, - { - params: transferForm, - }, - ) - if (!result.success) $toast.error(`历史记录 ${logid} 重新整理失败:${result.message}!`) - } catch (e) { - console.log(e) - } + await handleTransferLog(logid) } } @@ -169,6 +152,28 @@ async function transfer() { emit('done') } +// 整理文件 +async function handleTransfer(path: string) { + transferForm.path = path + try { + const result: { [key: string]: any } = await api.post('transfer/manual', {}, { params: transferForm }) + if (!result.success) $toast.error(`文件 ${path} 整理失败:${result.message}!`) + } catch (e) { + console.log(e) + } +} + +// 整理日志 +async function handleTransferLog(logid: number) { + transferForm.logid = logid + try { + const result: { [key: string]: any } = await api.post('transfer/manual', {}, { params: transferForm }) + if (!result.success) $toast.error(`历史记录 ${logid} 重新整理失败:${result.message}!`) + } catch (e) { + console.log(e) + } +} + // 调用API,加载当前系统环境设置 async function loadSystemSettings() { try { @@ -199,10 +204,7 @@ onMounted(() => {