diff --git a/package.json b/package.json index f96b345..8ae81ba 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,9 @@ "dev": "vue-cli-service serve", "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'" }, + "dependencies": { + "vuetify": "^2.4.0" + }, "devDependencies": { "@kangc/v-md-editor": "^1.7.7", "@vue/cli-plugin-babel": "^3.12.0", @@ -22,16 +25,22 @@ "js-yaml": "^4.1.0", "moment": "^2.29.1", "photoswipe": "^4.1.3", + "sass": "~1.32.0", + "sass-loader": "^10.0.0", "stylus": "^0.54.8", "stylus-loader": "3.0.2", "vue": "^2.6.14", "vue-aplayer": "^1.6.1", + "vue-cli-plugin-vuetify": "^2.4.5", + "vue-contextmenujs": "^1.3.13", "vue-i18n": "^8.25.0", "vue-pdf-app": "^2.1.0", "vue-plyr": "6.0.4", "vue-router": "^3.5.2", "vue-template-compiler": "^2.6.14", "vue-upload-component": "^2.8.22", + "vuetify-loader": "^1.7.0", + "vuetify-toast-snackbar": "^0.6.1", "vuex": "^3.6.2" }, "eslintConfig": { @@ -58,6 +67,5 @@ "last 2 versions" ], "license": "GPL-3.0", - "repository": "git@github.com:saltbo/zpan-front.git", - "dependencies": {} + "repository": "git@github.com:saltbo/zpan-front.git" } diff --git a/src/components/FileExplorer/FileExplorer.vue b/src/components/FileExplorer/FileExplorer.vue index 9bd3ec2..d3c67ca 100644 --- a/src/components/FileExplorer/FileExplorer.vue +++ b/src/components/FileExplorer/FileExplorer.vue @@ -8,32 +8,41 @@ - - + + diff --git a/src/components/FileExplorer/components/DialogConfirm.vue b/src/components/FileExplorer/components/DialogConfirm.vue new file mode 100644 index 0000000..6351f7c --- /dev/null +++ b/src/components/FileExplorer/components/DialogConfirm.vue @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/src/components/FileExplorer/components/DialogInputConfirm.vue b/src/components/FileExplorer/components/DialogInputConfirm.vue new file mode 100644 index 0000000..eeb49e6 --- /dev/null +++ b/src/components/FileExplorer/components/DialogInputConfirm.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/src/views/home/disk/components/DialogMove.vue b/src/components/FileExplorer/components/DialogMove.vue similarity index 100% rename from src/views/home/disk/components/DialogMove.vue rename to src/components/FileExplorer/components/DialogMove.vue diff --git a/src/views/home/disk/components/DialogOutlink.vue b/src/components/FileExplorer/components/DialogOutlink.vue similarity index 100% rename from src/views/home/disk/components/DialogOutlink.vue rename to src/components/FileExplorer/components/DialogOutlink.vue diff --git a/src/views/home/disk/components/DialogShare.vue b/src/components/FileExplorer/components/DialogShare.vue similarity index 100% rename from src/views/home/disk/components/DialogShare.vue rename to src/components/FileExplorer/components/DialogShare.vue diff --git a/src/views/home/disk/components/DialogUpload.vue b/src/components/FileExplorer/components/DialogUpload.vue similarity index 100% rename from src/views/home/disk/components/DialogUpload.vue rename to src/components/FileExplorer/components/DialogUpload.vue diff --git a/src/components/FileExplorer/explorer/ListExplorer.vue b/src/components/FileExplorer/explorer/ListExplorer.vue deleted file mode 100644 index 7faa650..0000000 --- a/src/components/FileExplorer/explorer/ListExplorer.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/FileExplorer/explorer/mixin.js b/src/components/FileExplorer/explorer/mixin.js deleted file mode 100644 index cc66d6c..0000000 --- a/src/components/FileExplorer/explorer/mixin.js +++ /dev/null @@ -1,106 +0,0 @@ -const mixin = { - props: { - value: Array, - loading: false, - - rowButtons: Array, - moreButtons: Array - }, - data() { - return { - data: [], - } - }, - watch: { - value(nval, oval) { - this.data = nval; - }, - }, - methods: { - isOfficeFile(type) { - let officeTypes = ["application/msword", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.presentationml.presentation"]; - return officeTypes.includes(type); - }, - officeIcon(type) { - let docTypes = ["application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"]; - let excelTypes = ["application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]; - let pptTypes = ["application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation"] - if (docTypes.includes(type)) { - return 'icon-doc' - } else if (excelTypes.includes(type)) { - return 'icon-excel' - } else if (pptTypes.includes(type)) { - return 'icon-ppt' - } - - }, - type2icon(type) { - console.log(type) - let [t1, t2] = type.split('/') - let mt = ['pdf', 'html', 'xml', 'psd', 'rtf'] - if (mt.includes(t2)) { - return `icon-${t2}` - } - - let codeTypes = ['json', 'yaml', 'x-yaml'] - if (codeTypes.includes(t2)) { - return 'icon-html' - } - - let compressedFileTypes = ['zip', 'x-gzip'] - if (compressedFileTypes.includes(t2)) { - return 'icon-compressed-file' - } - - if (this.isOfficeFile(type)) { - return this.officeIcon(type) - } - - let gt = ['audio', 'video', 'image', 'text'] - if (gt.includes(t1)) { - return `icon-${t1}` - } - - return 'icon-file' - }, - onNameClick(item) { - // open a folder - if (item.dirtype) { - this.$emit("on-click", 'folder', item) - return; - } - - // preview pdf file - if (item.type.endsWith("pdf")) { - this.$emit("on-click", 'pdf', item) - return; - } - - // preview image file - if (item.type.startsWith("text")) { - this.$emit("on-click", 'text', item) - return; - } - - // preview image file - if (item.type.startsWith("image")) { - this.$emit("on-click", 'image', item) - return; - } - - // preview media file - if (item.type.startsWith("audio") || item.type.startsWith("video")) { - this.$emit("on-click", 'media', item) - return; - } - - // preview office file - if (this.isOfficeFile(item.type)) { - this.$emit("on-click", 'doc', item) - return; - } - }, - } -} - -export default mixin \ No newline at end of file diff --git a/src/components/FileExplorer/index.js b/src/components/FileExplorer/index.js index 310beb9..1291494 100644 --- a/src/components/FileExplorer/index.js +++ b/src/components/FileExplorer/index.js @@ -1,5 +1,6 @@ import FileExplorer from './FileExplorer.vue' + const components = { FileExplorer: FileExplorer, } diff --git a/src/components/FileExplorer/explorer/GridExplorer.vue b/src/components/FileExplorer/layout/grid.vue similarity index 71% rename from src/components/FileExplorer/explorer/GridExplorer.vue rename to src/components/FileExplorer/layout/grid.vue index 51a3f37..66a8b25 100644 --- a/src/components/FileExplorer/explorer/GridExplorer.vue +++ b/src/components/FileExplorer/layout/grid.vue @@ -1,8 +1,13 @@