From 03c8a7f5b7b919f08632e8600751e92438f4b376 Mon Sep 17 00:00:00 2001 From: xlsea Date: Tue, 10 Jun 2025 22:00:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(components):=20=E6=96=B0=E5=A2=9E=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E4=B8=8A=E4=BC=A0=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/custom/file-upload.vue | 21 +++------ src/components/custom/oss-upload.vue | 46 +++++++++++++++++++ src/service/api/system/oss.ts | 37 ++------------- src/typings/components.d.ts | 1 + .../system/oss/modules/oss-upload-modal.vue | 9 ++-- 5 files changed, 64 insertions(+), 50 deletions(-) create mode 100644 src/components/custom/oss-upload.vue diff --git a/src/components/custom/file-upload.vue b/src/components/custom/file-upload.vue index 0dea9af6..1481aacc 100644 --- a/src/components/custom/file-upload.vue +++ b/src/components/custom/file-upload.vue @@ -1,5 +1,5 @@ diff --git a/src/components/custom/oss-upload.vue b/src/components/custom/oss-upload.vue new file mode 100644 index 00000000..e0d5e193 --- /dev/null +++ b/src/components/custom/oss-upload.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/service/api/system/oss.ts b/src/service/api/system/oss.ts index 2a1d1c52..23a6e07d 100644 --- a/src/service/api/system/oss.ts +++ b/src/service/api/system/oss.ts @@ -1,4 +1,3 @@ -import type { AxiosRequestConfig, GenericAbortSignal } from 'axios'; import { request } from '@/service/request'; /** 获取文件管理列表 */ @@ -18,36 +17,10 @@ export function fetchBatchDeleteOss(ossIds: CommonType.IdType[]) { }); } -/** Axios上传进度事件 */ -export type AxiosProgressEvent = AxiosRequestConfig['onUploadProgress']; - -/** 默认上传结果 */ -export interface UploadResult { - url: string; - fileName: string; - ossId: string; -} - -export interface UploadApiOptions { - onUploadProgress?: AxiosProgressEvent; - signal?: GenericAbortSignal; -} - -/** 上传文件接口 */ -export function uploadApi(file: File | Blob, options?: UploadApiOptions) { - const { onUploadProgress, signal } = options ?? {}; - - const formData = new FormData(); - formData.append('file', file); - - return request({ - url: '/resource/oss/upload', - method: 'post', - data: formData, - onUploadProgress, - headers: { - 'Content-Type': 'multipart/form-data' - }, - signal +// 查询OSS对象基于id串 +export function fetchGetOssListByIds(ossIds: CommonType.IdType[]) { + return request({ + url: `/resource/oss/listByIds/${ossIds.join(',')}`, + method: 'get' }); } diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts index 8be6129d..6f73d735 100644 --- a/src/typings/components.d.ts +++ b/src/typings/components.d.ts @@ -129,6 +129,7 @@ declare module 'vue' { NUpload: typeof import('naive-ui')['NUpload'] NUploadDragger: typeof import('naive-ui')['NUploadDragger'] NWatermark: typeof import('naive-ui')['NWatermark'] + OssUpload: typeof import('./../components/custom/oss-upload.vue')['default'] PinToggler: typeof import('./../components/common/pin-toggler.vue')['default'] PostSelect: typeof import('./../components/custom/post-select.vue')['default'] ReloadButton: typeof import('./../components/common/reload-button.vue')['default'] diff --git a/src/views/system/oss/modules/oss-upload-modal.vue b/src/views/system/oss/modules/oss-upload-modal.vue index d7cc16b1..60d14b5a 100644 --- a/src/views/system/oss/modules/oss-upload-modal.vue +++ b/src/views/system/oss/modules/oss-upload-modal.vue @@ -1,11 +1,12 @@