From 79cc8f711b5c02a2e5d03e4e4504547ea7bdc5cf Mon Sep 17 00:00:00 2001 From: Yann <1319542051@qq.com> Date: Tue, 11 Nov 2025 17:47:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?add=20=E6=96=87=E4=BB=B6=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- src/api/file.ts | 7 + src/components/video-player/index.vue | 71 +++++++ src/views/files/components/file-grid-view.vue | 6 + src/views/files/components/file-previewer.vue | 177 ++++++++++++++++++ src/views/files/components/index.ts | 1 + src/views/files/hooks/use-file-operations.ts | 27 +++ src/views/files/index.vue | 10 + 8 files changed, 301 insertions(+), 1 deletion(-) create mode 100644 src/components/video-player/index.vue create mode 100644 src/views/files/components/file-previewer.vue diff --git a/package.json b/package.json index 0ef8faf..8ae0dc1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "spark-md5": "^3.0.2", "vue": "^3.2.40", "vue-echarts": "^6.2.3", - "vue-router": "^4.0.14" + "vue-router": "^4.0.14", + "xgplayer": "^3.0.23" }, "devDependencies": { "@arco-plugins/vite-vue": "^1.4.5", diff --git a/src/api/file.ts b/src/api/file.ts index 7adddc0..c247412 100644 --- a/src/api/file.ts +++ b/src/api/file.ts @@ -182,5 +182,12 @@ export function unfavoriteFile(fileIds: string[]) { }); } +/** + * 获取文件访问URL + */ +export function getFilePreviewUrl(fileId: string, expireSeconds = 180) { + return request.get(`/apis/file/url/${fileId}`, { params: { expireSeconds } }); +} + // 导出类型以便在组件中使用 export type { FileListParams, FileItem }; diff --git a/src/components/video-player/index.vue b/src/components/video-player/index.vue new file mode 100644 index 0000000..05f543f --- /dev/null +++ b/src/components/video-player/index.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/files/components/file-grid-view.vue b/src/views/files/components/file-grid-view.vue index 2bc3418..6059424 100644 --- a/src/views/files/components/file-grid-view.vue +++ b/src/views/files/components/file-grid-view.vue @@ -113,6 +113,10 @@ @@ -233,6 +241,8 @@ DeleteConfirmModal, RecycleBinView, MySharesView, + UploadPanel, + FilePreviewer, } from './components'; const route = useRoute(); -- Gitee From 225be40ba5c619859c1b078a8ad30e33d7c92837 Mon Sep 17 00:00:00 2001 From: yanzy <1319542051@qq.com> Date: Tue, 11 Nov 2025 20:01:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9Ecode=E9=A2=84?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/vite.config.base.ts | 4 + package.json | 2 + src/components/code-player/index.vue | 134 ++++++++++++++++++ src/views/files/components/file-previewer.vue | 6 + 4 files changed, 146 insertions(+) create mode 100644 src/components/code-player/index.vue diff --git a/config/vite.config.base.ts b/config/vite.config.base.ts index 30efaf6..3e56dba 100644 --- a/config/vite.config.base.ts +++ b/config/vite.config.base.ts @@ -3,6 +3,7 @@ import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import svgLoader from 'vite-svg-loader'; +import monacoEditorPlugin from 'vite-plugin-monaco-editor'; import configArcoStyleImportPlugin from './plugin/arcoStyleImport'; export default defineConfig({ @@ -11,6 +12,9 @@ export default defineConfig({ vueJsx(), svgLoader({ svgoConfig: {} }), configArcoStyleImportPlugin(), + monacoEditorPlugin({ + languageWorkers: ['json', 'css', 'html', 'typescript'], + }), ], resolve: { alias: [ diff --git a/package.json b/package.json index 8ae0dc1..53891e7 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "echarts": "^5.4.0", "gsap": "^3.13.0", "mitt": "^3.0.0", + "monaco-editor": "^0.54.0", "motion-v": "^1.7.4", "nprogress": "^0.2.0", "pinia": "^2.0.23", @@ -46,6 +47,7 @@ "radash": "^12.1.0", "sortablejs": "^1.15.0", "spark-md5": "^3.0.2", + "vite-plugin-monaco-editor": "^1.1.0", "vue": "^3.2.40", "vue-echarts": "^6.2.3", "vue-router": "^4.0.14", diff --git a/src/components/code-player/index.vue b/src/components/code-player/index.vue new file mode 100644 index 0000000..9534fa0 --- /dev/null +++ b/src/components/code-player/index.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/views/files/components/file-previewer.vue b/src/views/files/components/file-previewer.vue index 3394d69..e0d621c 100644 --- a/src/views/files/components/file-previewer.vue +++ b/src/views/files/components/file-previewer.vue @@ -2,6 +2,7 @@ import { computed } from 'vue'; import { IconQuestion } from '@arco-design/web-vue/es/icon'; import VideoPlayer from '@/components/video-player/index.vue'; + import CodePlayer from '@/components/code-player/index.vue'; /** 文件预览组件 */ interface FileInfo { @@ -112,6 +113,10 @@ +
+ +
+