From a61d61c5cacd1a99432278ce31a5c2d70fe8e8ce Mon Sep 17 00:00:00 2001 From: fanbook-wangdage <124357765+fanbook-wangdage@users.noreply.github.com> Date: Mon, 16 Mar 2026 17:51:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E6=96=87=E4=BB=B6=E5=A4=B9=E6=97=B6=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=80=81=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6=E5=87=8F?= =?UTF-8?q?=E5=B0=91=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84basedir=E8=AF=B7?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../host/file-management/delete/index.vue | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/frontend/src/views/host/file-management/delete/index.vue b/frontend/src/views/host/file-management/delete/index.vue index 0c5910cf2abc..fe6a6d90b226 100644 --- a/frontend/src/views/host/file-management/delete/index.vue +++ b/frontend/src/views/host/file-management/delete/index.vue @@ -46,7 +46,7 @@ {{ $t('commons.button.cancel') }} - + {{ $t('commons.button.confirm') }} @@ -101,37 +101,43 @@ const getStatus = async () => { }; const onConfirm = async () => { - const pros = []; - for (const s of files.value) { - if (s['isDir']) { - if (s['path'].indexOf('.1panel_clash') > -1) { - MsgWarning(i18n.global.t('file.clashDeleteAlert')); - return; - } + loading.value = true; + try { + const pros = []; + let baseDir = ''; + if (files.value.some((item) => item['isDir'])) { const pathRes = await loadBaseDir(); - if (s['path'] === pathRes.data) { - MsgWarning(i18n.global.t('file.panelInstallDir')); - return; - } + baseDir = pathRes.data; } - if (reqNode.value != '') { - pros.push( - deleteFileByNode({ path: s['path'], isDir: s['isDir'], forceDelete: forceDelete.value }, reqNode.value), - ); - } else { - pros.push(deleteFile({ path: s['path'], isDir: s['isDir'], forceDelete: forceDelete.value })); + for (const s of files.value) { + if (s['isDir']) { + if (s['path'].indexOf('.1panel_clash') > -1) { + MsgWarning(i18n.global.t('file.clashDeleteAlert')); + return; + } + if (s['path'] === baseDir) { + MsgWarning(i18n.global.t('file.panelInstallDir')); + return; + } + } + if (reqNode.value != '') { + pros.push( + deleteFileByNode( + { path: s['path'], isDir: s['isDir'], forceDelete: forceDelete.value }, + reqNode.value, + ), + ); + } else { + pros.push(deleteFile({ path: s['path'], isDir: s['isDir'], forceDelete: forceDelete.value })); + } } + await Promise.all(pros); + MsgSuccess(i18n.global.t('commons.msg.deleteSuccess')); + open.value = false; + em('close'); + } finally { + loading.value = false; } - loading.value = true; - Promise.all(pros) - .then(() => { - MsgSuccess(i18n.global.t('commons.msg.deleteSuccess')); - open.value = false; - em('close'); - }) - .finally(() => { - loading.value = false; - }); }; const getIconName = (extension: string) => {