From 20daca1fdba0904edcc2c92017b22138ea4620a5 Mon Sep 17 00:00:00 2001 From: Hooray Hu <304327508@qq.com> Date: Mon, 19 Aug 2024 13:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++ pnpm-lock.yaml | 54 +++++++++++++++++++++++ src/router/modules/plugin.example.ts | 9 ++++ src/views/plugin_example/file-preview.vue | 50 +++++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 100644 src/views/plugin_example/file-preview.vue diff --git a/package.json b/package.json index 90f0be09..3d43f102 100755 --- a/package.json +++ b/package.json @@ -25,6 +25,9 @@ "@imengyu/vue3-context-menu": "^1.4.2", "@tinymce/tinymce-vue": "^6.0.1", "@visactor/vchart": "^1.11.10", + "@vue-office/docx": "^1.6.2", + "@vue-office/excel": "^1.7.11", + "@vue-office/pdf": "^2.0.2", "@vueuse/components": "^10.11.1", "@vueuse/core": "^10.11.0", "@vueuse/integrations": "^10.11.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88010758..5451ad6e 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,15 @@ importers: '@visactor/vchart': specifier: ^1.11.10 version: 1.11.10 + '@vue-office/docx': + specifier: ^1.6.2 + version: 1.6.2(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4)) + '@vue-office/excel': + specifier: ^1.7.11 + version: 1.7.11(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4)) + '@vue-office/pdf': + specifier: ^2.0.2 + version: 2.0.2(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4)) '@vueuse/components': specifier: ^10.11.1 version: 10.11.1(vue@3.4.35(typescript@5.5.4)) @@ -2564,6 +2573,36 @@ packages: '@volar/typescript@2.4.0-alpha.18': resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} + '@vue-office/docx@1.6.2': + resolution: {integrity: sha512-OHAoUHeY8nHjhWvwDhlPx+/rmRkxmqLpvPgtfCEOZ4H1c1LCdJ6eDbdV3152ww8dcdZ7fgGQu3fmSSaI7JwdpQ==} + peerDependencies: + '@vue/composition-api': ^1.7.1 + vue: ^2.0.0 || >=3.0.0 + vue-demi: ^0.14.6 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + '@vue-office/excel@1.7.11': + resolution: {integrity: sha512-LF3R9IV573Sf4qTu6Ik5Ee8UMfkrsZQ6HEQE25/2m1c0CMcHX6KanIy6Cz0b0Q+FrLH3TjIsLTm6oPcqAbDGSA==} + peerDependencies: + '@vue/composition-api': ^1.7.1 + vue: ^2.0.0 || >=3.0.0 + vue-demi: ^0.14.6 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + '@vue-office/pdf@2.0.2': + resolution: {integrity: sha512-bQFqGxSOnKbvCS7OoJniYoTz1VIm1XOrRD27Msorxny9NFJ8RsQK1A4uhlnISJRFMaUwp1qlcVE9jMAhsiIyjg==} + peerDependencies: + '@vue/composition-api': ^1.7.1 + vue: ^2.0.0 || >=3.0.0 + vue-demi: ^0.14.6 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + '@vue/babel-helper-vue-transform-on@1.2.2': resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} @@ -10055,6 +10094,21 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.0.8 + '@vue-office/docx@1.6.2(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4))': + dependencies: + vue: 3.4.35(typescript@5.5.4) + vue-demi: 0.14.10(vue@3.4.35(typescript@5.5.4)) + + '@vue-office/excel@1.7.11(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4))': + dependencies: + vue: 3.4.35(typescript@5.5.4) + vue-demi: 0.14.10(vue@3.4.35(typescript@5.5.4)) + + '@vue-office/pdf@2.0.2(vue-demi@0.14.10(vue@3.4.35(typescript@5.5.4)))(vue@3.4.35(typescript@5.5.4))': + dependencies: + vue: 3.4.35(typescript@5.5.4) + vue-demi: 0.14.10(vue@3.4.35(typescript@5.5.4)) + '@vue/babel-helper-vue-transform-on@1.2.2': {} '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': diff --git a/src/router/modules/plugin.example.ts b/src/router/modules/plugin.example.ts index 90ae51ec..76acb20e 100755 --- a/src/router/modules/plugin.example.ts +++ b/src/router/modules/plugin.example.ts @@ -157,6 +157,15 @@ const routes: RouteRecordRaw = { icon: 'i-mdi:table-large', }, }, + { + path: 'file-preview', + name: 'pluginExampleFilePreview', + component: () => import('@/views/plugin_example/file-preview.vue'), + meta: { + title: '文件预览', + icon: 'i-mdi:file-eye-outline', + }, + }, ], } diff --git a/src/views/plugin_example/file-preview.vue b/src/views/plugin_example/file-preview.vue new file mode 100644 index 00000000..50cb93b2 --- /dev/null +++ b/src/views/plugin_example/file-preview.vue @@ -0,0 +1,50 @@ + +meta: + enabled: false + + + + + + + + + + 支持docx、xlsx、pdf文件预览。 + + 安装命令:pnpm add @vue-office/docx @vue-office/excel @vue-office/pdf + + + + + + + 访问 vue-office + + + + + + + + + + + + +
支持docx、xlsx、pdf文件预览。
+ 安装命令:pnpm add @vue-office/docx @vue-office/excel @vue-office/pdf +