From a6cb692b9ac2b95e4325c192f4eef0908c2b874d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E7=A3=8A?= <17600116464@163.com> Date: Sat, 1 Mar 2025 10:26:21 -0500 Subject: [PATCH] =?UTF-8?q?feat(projects):=20=E6=B7=BB=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6grid=E5=B8=83=E5=B1=80=E5=92=8CList=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/imgs/no-items-tip.png | Bin 0 -> 13703 bytes src/assets/svg-icon/file-css.svg | 14 ++ src/assets/svg-icon/file-css2.svg | 1 + src/assets/svg-icon/file-dir.svg | 1 + src/assets/svg-icon/file-excel.svg | 11 ++ src/assets/svg-icon/file-html.svg | 14 ++ src/assets/svg-icon/file-html2.svg | 1 + src/assets/svg-icon/file-js.svg | 14 ++ src/assets/svg-icon/file-js2.svg | 1 + src/assets/svg-icon/file-markdown.svg | 1 + src/assets/svg-icon/file-pdf.svg | 11 ++ src/assets/svg-icon/file-ppt.svg | 12 ++ src/assets/svg-icon/file-rar.svg | 16 ++ src/assets/svg-icon/file-wps.svg | 13 ++ src/assets/svg-icon/file-zip.svg | 1 + src/assets/svg-icon/upload-file.svg | 1 + src/assets/svg-icon/upload-folder.svg | 12 ++ src/service/api/pan.ts | 18 ++ src/typings/app.d.ts | 26 +++ src/views/pan/components/file-grid.vue | 182 ++++++++++++++++++++ src/views/pan/components/file-image.vue | 70 ++++++++ src/views/pan/components/file-list.vue | 214 ++++++++++++++++++++++++ src/views/pan/modules/file-aside.vue | 10 +- src/views/pan/modules/file-main.vue | 50 +++++- 24 files changed, 681 insertions(+), 13 deletions(-) create mode 100644 src/assets/imgs/no-items-tip.png create mode 100644 src/assets/svg-icon/file-css.svg create mode 100644 src/assets/svg-icon/file-css2.svg create mode 100644 src/assets/svg-icon/file-dir.svg create mode 100644 src/assets/svg-icon/file-excel.svg create mode 100644 src/assets/svg-icon/file-html.svg create mode 100644 src/assets/svg-icon/file-html2.svg create mode 100644 src/assets/svg-icon/file-js.svg create mode 100644 src/assets/svg-icon/file-js2.svg create mode 100644 src/assets/svg-icon/file-markdown.svg create mode 100644 src/assets/svg-icon/file-pdf.svg create mode 100644 src/assets/svg-icon/file-ppt.svg create mode 100644 src/assets/svg-icon/file-rar.svg create mode 100644 src/assets/svg-icon/file-wps.svg create mode 100644 src/assets/svg-icon/file-zip.svg create mode 100644 src/assets/svg-icon/upload-file.svg create mode 100644 src/assets/svg-icon/upload-folder.svg create mode 100644 src/service/api/pan.ts create mode 100644 src/views/pan/components/file-grid.vue create mode 100644 src/views/pan/components/file-image.vue create mode 100644 src/views/pan/components/file-list.vue diff --git a/src/assets/imgs/no-items-tip.png b/src/assets/imgs/no-items-tip.png new file mode 100644 index 0000000000000000000000000000000000000000..816fbf0d4c2220ddb7aa4c1ea153ea00e247fab2 GIT binary patch literal 13703 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 + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-css2.svg b/src/assets/svg-icon/file-css2.svg new file mode 100644 index 00000000..990638a3 --- /dev/null +++ b/src/assets/svg-icon/file-css2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/file-dir.svg b/src/assets/svg-icon/file-dir.svg new file mode 100644 index 00000000..04daada7 --- /dev/null +++ b/src/assets/svg-icon/file-dir.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/file-excel.svg b/src/assets/svg-icon/file-excel.svg new file mode 100644 index 00000000..cd43176f --- /dev/null +++ b/src/assets/svg-icon/file-excel.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-html.svg b/src/assets/svg-icon/file-html.svg new file mode 100644 index 00000000..7a87a8e9 --- /dev/null +++ b/src/assets/svg-icon/file-html.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-html2.svg b/src/assets/svg-icon/file-html2.svg new file mode 100644 index 00000000..b84da6c5 --- /dev/null +++ b/src/assets/svg-icon/file-html2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/file-js.svg b/src/assets/svg-icon/file-js.svg new file mode 100644 index 00000000..ef737aa4 --- /dev/null +++ b/src/assets/svg-icon/file-js.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-js2.svg b/src/assets/svg-icon/file-js2.svg new file mode 100644 index 00000000..fed9b0de --- /dev/null +++ b/src/assets/svg-icon/file-js2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/file-markdown.svg b/src/assets/svg-icon/file-markdown.svg new file mode 100644 index 00000000..2ad93f6b --- /dev/null +++ b/src/assets/svg-icon/file-markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/file-pdf.svg b/src/assets/svg-icon/file-pdf.svg new file mode 100644 index 00000000..86e53b8f --- /dev/null +++ b/src/assets/svg-icon/file-pdf.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-ppt.svg b/src/assets/svg-icon/file-ppt.svg new file mode 100644 index 00000000..c11d4324 --- /dev/null +++ b/src/assets/svg-icon/file-ppt.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-rar.svg b/src/assets/svg-icon/file-rar.svg new file mode 100644 index 00000000..fbed0967 --- /dev/null +++ b/src/assets/svg-icon/file-rar.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-wps.svg b/src/assets/svg-icon/file-wps.svg new file mode 100644 index 00000000..652b056b --- /dev/null +++ b/src/assets/svg-icon/file-wps.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg-icon/file-zip.svg b/src/assets/svg-icon/file-zip.svg new file mode 100644 index 00000000..51fde6fa --- /dev/null +++ b/src/assets/svg-icon/file-zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/upload-file.svg b/src/assets/svg-icon/upload-file.svg new file mode 100644 index 00000000..60ca4bd2 --- /dev/null +++ b/src/assets/svg-icon/upload-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/upload-folder.svg b/src/assets/svg-icon/upload-folder.svg new file mode 100644 index 00000000..3c13f503 --- /dev/null +++ b/src/assets/svg-icon/upload-folder.svg @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/src/service/api/pan.ts b/src/service/api/pan.ts new file mode 100644 index 00000000..5f995783 --- /dev/null +++ b/src/service/api/pan.ts @@ -0,0 +1,18 @@ +import { request } from '../request'; + +/** 网盘上传地址 */ +export const simpleUploadURL = `${import.meta.env.VITE_SERVICE_BASE_URL}/pan/upload`; +/** 获取首页文件列表 */ +export const fetchGetFileList = () => { + return request({ + url: '/pan/filelist' + }); +}; + +/** 删除文件 */ +export const fetchDeleteFile = (id: string) => { + return request({ + url: `/pan/file/${id}`, + method: 'delete' + }); +}; diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 076c0c98..c832f9c5 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -263,6 +263,32 @@ declare namespace App { /** The global dropdown key */ type DropdownKey = 'closeCurrent' | 'closeOther' | 'closeLeft' | 'closeRight' | 'closeAll'; + + /** 文件类型 */ + type FileItem = { + /** 文件唯一标识 */ + id: string; + /** 文件类型 */ + type?: string; + /** 文件名 */ + name: string; + /** 拓展名 */ + extendName: string; + /** 文件路径 */ + src: string; + /** 文件修改时间 */ + updateTime: string; + /** 是否是目录 */ + isDir: boolean; + /** 是否是公共目录 */ + isPublic?: boolean; + /** 文件路径 */ + filePath: string; + /** 文件大小 */ + size: number; + /** 任意属性只能有一个 */ + [propName: string]: any; + }; } /** diff --git a/src/views/pan/components/file-grid.vue b/src/views/pan/components/file-grid.vue new file mode 100644 index 00000000..ac8456f4 --- /dev/null +++ b/src/views/pan/components/file-grid.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/src/views/pan/components/file-image.vue b/src/views/pan/components/file-image.vue new file mode 100644 index 00000000..2a8f1313 --- /dev/null +++ b/src/views/pan/components/file-image.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/views/pan/components/file-list.vue b/src/views/pan/components/file-list.vue new file mode 100644 index 00000000..e19a2a53 --- /dev/null +++ b/src/views/pan/components/file-list.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/src/views/pan/modules/file-aside.vue b/src/views/pan/modules/file-aside.vue index 1d0b19d8..aaa8f1a8 100644 --- a/src/views/pan/modules/file-aside.vue +++ b/src/views/pan/modules/file-aside.vue @@ -72,12 +72,10 @@ const fileMenuOptions = [ -
- - - - - +
+ + +
diff --git a/src/views/pan/modules/file-main.vue b/src/views/pan/modules/file-main.vue index 82fdced5..6926b58a 100644 --- a/src/views/pan/modules/file-main.vue +++ b/src/views/pan/modules/file-main.vue @@ -1,8 +1,12 @@