From 76dbcfcb72ef28ef8b79354311fd6f60faad8a1d Mon Sep 17 00:00:00 2001 From: jmal Date: Sun, 29 Mar 2020 21:12:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BE=E7=89=87=E9=A2=84?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/components/ShowFile/ShowFile.vue | 15 +- src/components/preview/ImageViewer.vue | 132 ++++++++++++++++++ .../SimTextPreview.vue | 0 src/main.js | 3 +- src/views/demo/index.vue | 89 +++++++++--- 6 files changed, 218 insertions(+), 23 deletions(-) create mode 100644 src/components/preview/ImageViewer.vue rename src/components/{SimTextPreview => preview}/SimTextPreview.vue (100%) diff --git a/package.json b/package.json index e8498c2..97dbd97 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,9 @@ "scriptjs": "^2.5.9", "sortablejs": "^1.10.2", "spark-md5": "^3.0.0", + "v-viewer": "^1.5.1", "vant": "^2.5.0", + "viewerjs": "^1.5.0", "vonic": "^1.1.3", "vue": "2.6.10", "vue-codemirror-lite": "^1.0.4", diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index a948b3e..ece7f30 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -329,6 +329,7 @@ @current-change="currentChange"> + @@ -348,12 +349,13 @@ import BreadcrumbFilePath from "@/components/Breadcrumb/BreadcrumbFilePath"; import IconFile from "@/components/Icon/IconFile"; import EmptyFile from "@/components/EmptyFile"; - import SimTextPreview from "@/components/SimTextPreview/SimTextPreview"; import Clipboard from 'clipboard'; + import SimTextPreview from "@/components/preview/SimTextPreview"; + import ImageViewer from "@/components/preview/ImageViewer"; export default { name: 'ShowFile', - components: {SimTextPreview, IconFile, BreadcrumbFilePath,EmptyFile}, + components: {ImageViewer, SimTextPreview, IconFile, BreadcrumbFilePath, EmptyFile}, props: { emptyStatus: { 'type': String, @@ -535,6 +537,8 @@ generateShareLinkLoading: true, textPreviewVisible : false, textPreviewRow: {}, + imagePreviewRow: {}, + imageViewerVisible : false, } }, computed: { @@ -1891,7 +1895,14 @@ // this.getFileList() } } else { + if(row.contentType.indexOf('image') > -1){ + // 图片 + this.imageViewerVisible = true + this.imagePreviewRow = row + return + } if(suffix.simText.includes(row.suffix)){ + // 文本文件 this.textPreviewRow = row this.textPreviewVisible = true return diff --git a/src/components/preview/ImageViewer.vue b/src/components/preview/ImageViewer.vue new file mode 100644 index 0000000..dd3c594 --- /dev/null +++ b/src/components/preview/ImageViewer.vue @@ -0,0 +1,132 @@ + + + + diff --git a/src/components/SimTextPreview/SimTextPreview.vue b/src/components/preview/SimTextPreview.vue similarity index 100% rename from src/components/SimTextPreview/SimTextPreview.vue rename to src/components/preview/SimTextPreview.vue diff --git a/src/main.js b/src/main.js index d7add96..94a3116 100644 --- a/src/main.js +++ b/src/main.js @@ -25,7 +25,8 @@ import '@/icons' // icon import '@/permission' // permission control import VueTouch from"vue-touch"; - +import Viewer from 'v-viewer' +Vue.use(Viewer) Vue.use(VueTouch, {name:'v-touch'}) /** diff --git a/src/views/demo/index.vue b/src/views/demo/index.vue index dc25144..c7afb70 100644 --- a/src/views/demo/index.vue +++ b/src/views/demo/index.vue @@ -1,29 +1,78 @@ - + \ No newline at end of file