diff --git a/frontend/src/views/host/file-management/index.vue b/frontend/src/views/host/file-management/index.vue index 2444f40c1..0cd687f8f 100644 --- a/frontend/src/views/host/file-management/index.vue +++ b/frontend/src/views/host/file-management/index.vue @@ -1097,7 +1097,7 @@ const buttons = [ label: i18n.global.t('file.deCompress'), click: openDeCompress, disabled: (row: File.File) => { - return row.isDir; + return !isDecompressFile(row); }, }, { @@ -1137,6 +1137,20 @@ const buttons = [ }, ]; +const isDecompressFile = (row: File.File) => { + if (row.isDir) { + return false; + } + if (getFileType(row.extension) === 'compress') { + return true; + } + if (row.mimeType == 'application/octet-stream') { + return false; + } else { + return Mimetypes.get(row.mimeType) != undefined; + } +}; + onMounted(() => { if (router.currentRoute.value.query.path) { req.path = String(router.currentRoute.value.query.path);