diff --git a/frontend/src/api/modules/container.ts b/frontend/src/api/modules/container.ts index 731b5f4bf..7fbb93752 100644 --- a/frontend/src/api/modules/container.ts +++ b/frontend/src/api/modules/container.ts @@ -1,4 +1,5 @@ import http from '@/api'; +import type { AxiosRequestConfig } from 'axios'; import { ResPage, SearchWithPage } from '../interface'; import { Container } from '../interface/container'; import { TimeoutEnum } from '@/enums/http-enum'; @@ -23,10 +24,11 @@ export const loadContainerUsers = (name: string) => { export const listContainerFiles = (params: Container.ContainerFileReq) => { return http.post>(`/containers/files/search`, params, TimeoutEnum.T_40S); }; -export const uploadContainerFile = (params: FormData) => { +export const uploadContainerFile = (params: FormData, config?: AxiosRequestConfig & { skipErrorMessage?: boolean }) => { return http.upload(`/containers/files/upload`, params, { - headers: { 'Content-Type': 'multipart/form-data' }, timeout: TimeoutEnum.T_5M, + ...config, + headers: { 'Content-Type': 'multipart/form-data', ...config?.headers }, }); }; export const getContainerFileContent = (params: Container.ContainerFileReq) => { diff --git a/frontend/src/views/container/container/file-browser/index.vue b/frontend/src/views/container/container/file-browser/index.vue index e58a03a8c..ae96c7dca 100644 --- a/frontend/src/views/container/container/file-browser/index.vue +++ b/frontend/src/views/container/container/file-browser/index.vue @@ -32,11 +32,9 @@ @blur="cancelPathEditing" @keyup.enter.prevent="submitPathInput" /> - - - {{ $t('commons.button.upload') }} - - + + {{ $t('commons.button.upload') }} + {{ $t('commons.button.delete') }} @@ -97,6 +95,7 @@ + ([]); -const uploadRef = ref(); +const uploadRef = ref>(); const pathInputRef = ref>(); -const uploading = ref(false); const previewVisible = ref(false); const previewTitle = ref(''); const previewContent = ref(''); @@ -253,27 +251,8 @@ const submitPathInput = async () => { } }; -const onUploadChange = async (uploadFile: UploadFile) => { - if (!uploadFile.raw) { - return; - } - const formData = new FormData(); - formData.append('containerID', containerID.value); - formData.append('path', filePath.value); - formData.append('file', uploadFile.raw); - uploading.value = true; - await uploadContainerFile(formData) - .then(async () => { - MsgSuccess(i18n.global.t('file.uploadSuccess')); - await loadContainerFiles(); - }) - .catch((err) => { - MsgError(err?.message || i18n.global.t('commons.msg.operationFailed')); - }) - .finally(() => { - uploading.value = false; - uploadRef.value?.clearFiles(); - }); +const onUpload = () => { + uploadRef.value?.acceptParams({ path: filePath.value, containerID: containerID.value }); }; const onOpenFile = async (path: string) => { diff --git a/frontend/src/views/host/file-management/upload/index.vue b/frontend/src/views/host/file-management/upload/index.vue index 06b324032..195971b0d 100644 --- a/frontend/src/views/host/file-management/upload/index.vue +++ b/frontend/src/views/host/file-management/upload/index.vue @@ -119,8 +119,9 @@