From fe6669d81320602c5a54f37ad90c44278ae92f22 Mon Sep 17 00:00:00 2001 From: haoxr <1490493387@qq.com> Date: Mon, 21 Nov 2022 00:03:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=81=E8=A3=85=E5=A4=9A=E5=9B=BE?= =?UTF-8?q?=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 Former-commit-id: d36f4fb6fb9e2c3da42518f6689a78ab2370af57 --- src/api/{file.ts => file/index.ts} | 10 +- src/api/file/types.ts | 7 ++ src/components/Upload/MultiUpload.vue | 154 +++++++++++++++++++++++++ src/components/Upload/SingleUpload.vue | 128 +++++++------------- src/components/WangEditor/index.vue | 6 +- src/views/component/uploader.vue | 33 ++++++ 6 files changed, 246 insertions(+), 92 deletions(-) rename src/api/{file.ts => file/index.ts} (61%) create mode 100644 src/api/file/types.ts create mode 100644 src/components/Upload/MultiUpload.vue create mode 100644 src/views/component/uploader.vue diff --git a/src/api/file.ts b/src/api/file/index.ts similarity index 61% rename from src/api/file.ts rename to src/api/file/index.ts index 36bd9a36..80cc5e5f 100644 --- a/src/api/file.ts +++ b/src/api/file/index.ts @@ -1,11 +1,13 @@ import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { FileInfo } from './types'; /** * 上传文件 * * @param file */ -export function uploadFile(file: File) { +export function uploadFileApi(file: File): AxiosPromise { const formData = new FormData(); formData.append('file', file); return request({ @@ -21,12 +23,12 @@ export function uploadFile(file: File) { /** * 删除文件 * - * @param path + * @param fileName 文件名 */ -export function deleteFile(path?: string) { +export function deleteFileApi(fileName?: string) { return request({ url: '/api/v1/files', method: 'delete', - params: { path: path } + params: { fileName: fileName } }); } diff --git a/src/api/file/types.ts b/src/api/file/types.ts new file mode 100644 index 00000000..22b2be55 --- /dev/null +++ b/src/api/file/types.ts @@ -0,0 +1,7 @@ +/** + * 文件API类型声明 + */ +export interface FileInfo { + name: string; + url: string; +} diff --git a/src/components/Upload/MultiUpload.vue b/src/components/Upload/MultiUpload.vue new file mode 100644 index 00000000..fec47b23 --- /dev/null +++ b/src/components/Upload/MultiUpload.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/components/Upload/SingleUpload.vue b/src/components/Upload/SingleUpload.vue index a07aea12..99375507 100644 --- a/src/components/Upload/SingleUpload.vue +++ b/src/components/Upload/SingleUpload.vue @@ -1,42 +1,28 @@ - + + diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue index e758cbfb..aeab4d1f 100644 --- a/src/components/WangEditor/index.vue +++ b/src/components/WangEditor/index.vue @@ -24,7 +24,7 @@ import { onBeforeUnmount, shallowRef, reactive, toRefs } from 'vue'; import { Editor, Toolbar } from '@wangeditor/editor-for-vue'; // API 引用 -import { uploadFile } from '@/api/file'; +import { uploadFileApi } from '@/api/file'; const props = defineProps({ modelValue: { @@ -46,8 +46,8 @@ const state = reactive({ uploadImage: { // 自定义图片上传 async customUpload(file: any, insertFn: any) { - uploadFile(file).then(response => { - const url = response.data; + uploadFileApi(file).then(response => { + const url = response.data.url; insertFn(url); }); } diff --git a/src/views/component/uploader.vue b/src/views/component/uploader.vue new file mode 100644 index 00000000..8a4ab8b3 --- /dev/null +++ b/src/views/component/uploader.vue @@ -0,0 +1,33 @@ + +