From 1fa2f1105752524e2d456a21050cd941eae86491 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 29 Oct 2026 15:46:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=97=A5=E5=BF=97=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Editor/index.vue | 12 +++++ src/components/Upload/index.vue | 26 ++++++++-- src/utils/file-access-core.ts | 34 ++++++++++++- src/utils/file-access.ts | 1 + src/utils/request.ts | 2 + src/views/admin/log/index.vue | 36 +++++++++++++- test-vectors/file-upload.json | 32 ++++++++++++ tests/file-upload.test.cjs | 82 +++++++++++++++++++++++++++++++ tests/log-export.test.cjs | 64 +++++++++++++++++++++--- tests/upload-transport.test.cjs | 87 +++++++++++++++++++++++++++++++++ 10 files changed, 362 insertions(+), 14 deletions(-) create mode 100644 test-vectors/file-upload.json create mode 100644 tests/file-upload.test.cjs create mode 100644 tests/upload-transport.test.cjs diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue index 891ed5a..6740abe 100644 --- a/src/components/Editor/index.vue +++ b/src/components/Editor/index.vue @@ -22,6 +22,7 @@ import { stripFileHtml, resolveFileUrl } from '/@/utils/file-access'; import { bindFileAccessDom } from '/@/utils/file-access-dom'; import { Session } from '/@/utils/storage'; import other from '/@/utils/other'; +import request from '/@/utils/request'; const { proxy } = getCurrentInstance(); // 定义父组件传过来的值 @@ -75,6 +76,17 @@ const headers = computed(() => { // 定义上传需要的字段信息 const uploadAttr = reactive({ + async customUpload(file: File, insertFn: (url: string) => void) { + const data = new FormData(); + data.append('file', file); + try { + const response = await request({ url: props.uploadFileUrl, method: 'post', data }); + if (response.code !== 0 || !response.data?.url) throw new Error(response.msg || '文件上传失败'); + insertFn(resolveFileUrl(response.data.url)); + } catch (error: any) { + throw new Error(error?.msg || error?.message || '文件上传失败'); + } + }, fieldName: 'file', server: proxy.baseURL + props.uploadFileUrl, headers: headers, diff --git a/src/components/Upload/index.vue b/src/components/Upload/index.vue index c21b0cb..6b104c5 100644 --- a/src/components/Upload/index.vue +++ b/src/components/Upload/index.vue @@ -2,6 +2,7 @@