From a5b8b63fec5762271907d35c84c77c45f073358f Mon Sep 17 00:00:00 2001 From: DevDengChao <2325690622@qq.com> Date: Sun, 28 Sep 2025 15:35:32 +0800 Subject: [PATCH 1/3] feat: upload first file item --- src/api/infra/file/index.ts | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts index 374f8c6ec..56703c9b9 100644 --- a/src/api/infra/file/index.ts +++ b/src/api/infra/file/index.ts @@ -40,7 +40,32 @@ export const createFile = (data: any) => { return request.post({ url: '/infra/file/create', data }) } -// 上传文件 +/** + * 上传文件 + * @deprecated use uploadFile instead + * @param data + */ export const updateFile = (data: any) => { + return uploadFile(data) +} + +// 上传文件 +export const uploadFile = (data: any) => { return request.upload({ url: '/infra/file/upload', data }) } + +/** + * 上传剪贴板中的第一个文件 + * @param event + */ +export const uploadFirstFileItem = (event: ClipboardEvent) => { + const items = event.clipboardData?.items + if (!items) return null + for (let i = 0; i < items.length; i++) { + const item = items[i] + if (item.kind === 'file') { + return uploadFile(item.getAsFile()) + } + } + return null +} From 66f278aae9b8af0eef07dd1bc68f0b9cfc824db3 Mon Sep 17 00:00:00 2001 From: DevDengChao <2325690622@qq.com> Date: Sun, 28 Sep 2025 15:42:38 +0800 Subject: [PATCH 2/3] fix: parameter mapping --- src/api/infra/file/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts index 56703c9b9..a5cc39ee3 100644 --- a/src/api/infra/file/index.ts +++ b/src/api/infra/file/index.ts @@ -64,7 +64,7 @@ export const uploadFirstFileItem = (event: ClipboardEvent) => { for (let i = 0; i < items.length; i++) { const item = items[i] if (item.kind === 'file') { - return uploadFile(item.getAsFile()) + return uploadFile({ file: item.getAsFile() }) } } return null From b58a1fc0ff41dd4aa017f573d997ea50755c0fc4 Mon Sep 17 00:00:00 2001 From: DevDengChao <2325690622@qq.com> Date: Sun, 28 Sep 2025 15:52:30 +0800 Subject: [PATCH 3/3] fix: error handle --- src/api/infra/file/index.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts index a5cc39ee3..306c21050 100644 --- a/src/api/infra/file/index.ts +++ b/src/api/infra/file/index.ts @@ -60,12 +60,19 @@ export const uploadFile = (data: any) => { */ export const uploadFirstFileItem = (event: ClipboardEvent) => { const items = event.clipboardData?.items - if (!items) return null + if (!items) + return new Promise((_, reject) => { + reject(new Error('剪贴板中没有内容')) + }) + for (let i = 0; i < items.length; i++) { const item = items[i] if (item.kind === 'file') { return uploadFile({ file: item.getAsFile() }) } } - return null + + return new Promise((_, reject) => { + reject(new Error('剪贴板中没有文件')) + }) }