From edf64e4b5f54778844c1a3f566800385342509f1 Mon Sep 17 00:00:00 2001 From: jmal Date: Sun, 29 Mar 2020 15:49:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=9C=AC=E6=9F=A5=E7=9C=8B=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 7 +- src/api/{upload-api.js => file-api.js} | 13 +- src/components/ShowFile/ShowFile.vue | 67 ++++-- .../SimTextPreview/SimTextPreview.vue | 222 ++++++++++++++++++ .../SimpleUploader/globalUploader.vue | 2 +- .../VueCodemirror/VueCodeMirror.vue | 167 +++++++++++++ src/main.js | 8 - src/styles/index.scss | 28 +++ src/styles/markdown.scss | 6 + src/utils/directives.js | 86 +++++++ src/utils/file-type.js | 176 ++++++++++++++ src/views/demo/index.vue | 122 ++-------- src/views/favorite/index.vue | 2 +- src/views/home/mobile/index.vue | 2 +- src/views/login/index.vue | 4 +- src/views/markdown/index.vue | 2 +- src/views/public/article/index.vue | 1 + src/views/public/articles/index.vue | 4 +- src/views/public/share/shareList.vue | 2 +- src/views/share/index.vue | 31 ++- vue.config.js | 30 +-- 21 files changed, 809 insertions(+), 173 deletions(-) rename src/api/{upload-api.js => file-api.js} (92%) create mode 100644 src/components/SimTextPreview/SimTextPreview.vue create mode 100644 src/components/VueCodemirror/VueCodeMirror.vue create mode 100644 src/utils/directives.js create mode 100644 src/utils/file-type.js diff --git a/package.json b/package.json index 3c96d1a..e8498c2 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "vue-admin-template", + "name": "jmal-cloud-view", "version": "4.2.1", - "description": "A vue admin template with Element UI & axios & iconfont & permission control & lint", - "author": "Pan ", + "description": "jmal cloud", + "author": "Jmal ", "license": "MIT", "scripts": { "dev": "vue-cli-service serve", @@ -38,6 +38,7 @@ "vant": "^2.5.0", "vonic": "^1.1.3", "vue": "2.6.10", + "vue-codemirror-lite": "^1.0.4", "vue-grid-layout": "^2.3.7", "vue-router": "3.0.6", "vue-simple-uploader": "^0.7.4", diff --git a/src/api/upload-api.js b/src/api/file-api.js similarity index 92% rename from src/api/upload-api.js rename to src/api/file-api.js index 9e3309f..d155ce1 100644 --- a/src/api/upload-api.js +++ b/src/api/file-api.js @@ -135,7 +135,10 @@ export default { return request({ url: 'share/cancel', method: 'delete', - params + params, + paramsSerializer: function(params) { + return qs.stringify(params, { arrayFormat: 'repeat' }) + } }) }, // 分享列表 @@ -162,4 +165,12 @@ export default { params }) }, + // 访问分享链接里的文件夹 + previewText: function(params) { + return request({ + url: '/preview/text', + method: 'get', + params + }) + }, } diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index 040c527..a948b3e 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -328,6 +328,7 @@ :total="pagination.total" @current-change="currentChange"> + @@ -341,16 +342,18 @@ // import defaultSettings from '@/settings' import { getPath, getPathList, setPath, removePath } from '@/utils/path' import { strlen, substring10, formatTime, formatSize } from '@/utils/number' + import { suffix } from '@/utils/file-type' import Bus from '@/assets/js/bus' - import api from '@/api/upload-api' + import api from '@/api/file-api' 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'; export default { name: 'ShowFile', - components: { IconFile, BreadcrumbFilePath,EmptyFile}, + components: {SimTextPreview, IconFile, BreadcrumbFilePath,EmptyFile}, props: { emptyStatus: { 'type': String, @@ -530,6 +533,8 @@ shareLink: '', shareFileName: '', generateShareLinkLoading: true, + textPreviewVisible : false, + textPreviewRow: {}, } }, computed: { @@ -549,20 +554,6 @@ this.preliminaryRowData() }) - // 加载路径 - // const pathList = getPathList() - // if (pathList && pathList !== 'undefined') { - // const res = JSON.parse(pathList) - // const list = [] - // res.forEach(function(element) { - // const item0 = {} - // item0['folder'] = element.folder + '' - // item0['index'] = element.index - // list.push(item0) - // }) - // this.pathList = list - // } - if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener('popstate', this.goBack, false); @@ -1861,7 +1852,6 @@ }, // 点击文件或文件夹 fileClick(row) { - console.log(row) if (row.isFolder) { // 打开文件夹 if (this.listModeSearch) { @@ -1901,16 +1891,21 @@ // this.getFileList() } } else { + if(suffix.simText.includes(row.suffix)){ + this.textPreviewRow = row + this.textPreviewVisible = true + return + } if(row.contentType.includes('text')){ // let routeData = this.$router.resolve({path: '/public/articles/article',query: {mark: row.id}}) // window.open(routeData.href, '_blank'); this.$router.push(`/public/articles/article?mark=${row.id}`) - }else{ - // 打开文件 - const fileIds = [row.id] - let url = process.env.VUE_APP_BASE_FILE_API + 'preview/' + row.name + '?jmal-token=' + this.$store.state.user.token + '&fileIds=' + fileIds - window.open(url, '_blank') + return } + // 打开文件 + const fileIds = [row.id] + let url = process.env.VUE_APP_BASE_FILE_API + 'preview/' + row.name + '?jmal-token=' + this.$store.state.user.token + '&fileIds=' + fileIds + window.open(url, '_blank') // const fileIds = [row.id] // let url = 'http://localhost:10010/preview/' + row.name + '?jmal-token=' + this.$store.state.user.token + '&fileIds=' + fileIds // url = process.env.VUE_APP_BASE_PRIVIEW_API+'/onlinePreview?url='+encodeURIComponent(url); @@ -1923,7 +1918,33 @@ diff --git a/src/components/SimTextPreview/SimTextPreview.vue b/src/components/SimTextPreview/SimTextPreview.vue new file mode 100644 index 0000000..1214cce --- /dev/null +++ b/src/components/SimTextPreview/SimTextPreview.vue @@ -0,0 +1,222 @@ + + + diff --git a/src/components/SimpleUploader/globalUploader.vue b/src/components/SimpleUploader/globalUploader.vue index e782b03..a96ca7c 100755 --- a/src/components/SimpleUploader/globalUploader.vue +++ b/src/components/SimpleUploader/globalUploader.vue @@ -84,7 +84,7 @@ import Bus from '@/assets/js/bus' import $ from 'jquery' import SparkMD5 from 'spark-md5' -import api from '@/api/upload-api' +import api from '@/api/file-api' import { formatNetSpeed } from '@/utils/number' export default { diff --git a/src/components/VueCodemirror/VueCodeMirror.vue b/src/components/VueCodemirror/VueCodeMirror.vue new file mode 100644 index 0000000..fbc6148 --- /dev/null +++ b/src/components/VueCodemirror/VueCodeMirror.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/main.js b/src/main.js index d06b6fd..d7add96 100644 --- a/src/main.js +++ b/src/main.js @@ -80,14 +80,6 @@ Vue.use(EVueContextmenu) Vue.config.productionTip = false -import plTable from 'pl-table' - -import 'pl-table/themes/index.css' // 引入样式(必须引入),请查看webpack是否配置了url-loader对woff,ttf文件的引用,不配置会报错哦 - -// import 'pl-table/themes/plTableStyle.css' // 默认表格样式很丑 引入这个样式就可以好看啦(如果你不喜欢这个样式,就不要引入,不引入就跟ele表格样式一样) - -Vue.use(plTable); - new Vue({ el: '#app', router, diff --git a/src/styles/index.scss b/src/styles/index.scss index 760e6fe..d3eb417 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -12,6 +12,34 @@ body { font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; } +/deep/::-webkit-scrollbar { + /*滚动条整体样式*/ + width: 12px; + height: 10px; +} +/deep/::-webkit-scrollbar-thumb { + /*滚动条里面小方块*/ + height: 30px; + background-color: #c0c0c0; + -webkit-border-radius: 7px; + outline: 2px solid #fff; + outline-offset: -2px; + border: 2px solid #fff; +} +/deep/::-webkit-scrollbar-thumb:hover { + background-color: #999; +} +/deep/::-webkit-scrollbar-track { + /*滚动条里面轨道*/ + /*box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);*/ + /*background : #ffffff;*/ + /*border-radius: 10px;*/ +} +/deep/::-webkit-scrollbar-track-piece { + background-color: #fff; + -webkit-border-radius: 3px; +} + label { font-weight: 700; } diff --git a/src/styles/markdown.scss b/src/styles/markdown.scss index f1f0dd6..61f654b 100644 --- a/src/styles/markdown.scss +++ b/src/styles/markdown.scss @@ -183,6 +183,12 @@ -ms-flex-direction: column; flex-direction: column; } +::-webkit-scrollbar { + /*滚动条整体样式*/ + width : 10px; /*高宽分别对应横竖滚动条的尺寸*/ + height: 10px; +} + @media only screen and (max-width: 768px){ /deep/ .right-bj { diff --git a/src/utils/directives.js b/src/utils/directives.js new file mode 100644 index 0000000..e2b7893 --- /dev/null +++ b/src/utils/directives.js @@ -0,0 +1,86 @@ + +import Vue from 'vue' + +// v-dialogDrag: 弹窗拖拽 +Vue.directive('dialogDrag', { + bind(el, binding, vnode, oldVnode) { + // 获取拖拽内容头部 + const dialogHeaderEl = el.querySelector('.el-dialog__header'); + const dragDom = el.querySelector('.el-dialog'); + dragDom.style.transform="translate("+binding.value.x+"px,"+binding.value.y+"px)"; + dialogHeaderEl.style.cursor = 'move'; + // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null); + const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); + // 鼠标按下事件 + dialogHeaderEl.onmousedown = (e) => { + // 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离) + const disX = e.clientX - dialogHeaderEl.offsetLeft; + const disY = e.clientY - dialogHeaderEl.offsetTop; + // 获取到的值带px 正则匹配替换 + let styL, styT; + // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px + if (sty.left.includes('%')) { + styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)+binding.value.x; + styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)+binding.value.y; + } else { + styL = +sty.left.replace(/\px/g, '')+binding.value.x; + styT = +sty.top.replace(/\px/g, '')+binding.value.y; + }; + // 鼠标拖拽事件 + document.onmousemove = function (e) { + // 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离) + const l = e.clientX - disX; + const t = e.clientY - disY; + let finallyL = l + styL; + let finallyT = t + styT; + // 边界值判定 注意clientWidth scrollWidth区别 要减去之前的top left值 + if (finallyL < 0) {////顶部 + finallyL = 0 + } else if (finallyL > dragDom.offsetParent.clientWidth - dragDom.clientWidth) {///底部 + finallyL = dragDom.offsetParent.clientWidth - dragDom.clientWidth + } + + if (finallyT < 0) {////顶部 + finallyT = 0 + } else if (finallyT > dragDom.offsetParent.clientHeight - dragDom.clientHeight) (///底部 + finallyT = dragDom.offsetParent.clientHeight - dragDom.clientHeight + ) + binding.value.x=finallyL; + binding.value.y=finallyT; + dragDom.style.transform="translate("+finallyL+"px,"+finallyT+"px)"; + //将此时的位置传出去 + //binding.value({x:e.pageX,y:e.pageY}) + }; + document.onmouseup = function (e) { + document.onmousemove = null; + document.onmouseup = null; + }; + } + } +}) + +// v-dialogDragWidth: 弹窗宽度拖大 拖小 +Vue.directive('dialogDragWidth', { + bind(el, binding, vnode, oldVnode) { + const dragDom = binding.value.$el.querySelector('.el-dialog') + + el.onmousedown = (e) => { + // 鼠标按下,计算当前元素距离可视区的距离 + const disX = e.clientX - el.offsetLeft + + document.onmousemove = function(e) { + e.preventDefault() // 移动时禁用默认事件 + + // 通过事件委托,计算移动的距离 + const l = e.clientX - disX + dragDom.style.width = `${l}px` + } + + document.onmouseup = function(e) { + document.onmousemove = null + document.onmouseup = null + } + } + } +}) + diff --git a/src/utils/file-type.js b/src/utils/file-type.js new file mode 100644 index 0000000..333df00 --- /dev/null +++ b/src/utils/file-type.js @@ -0,0 +1,176 @@ +export const suffix = { + simText: [ + 'swift','ymal','yml','dart','vue','txt', + 'go','html','htm','asp','jsp','js','css', + 'xml','iml','json','properties','md', + 'gitignore','java','py','c','cpp', + 'sql','sh','bat','m','bas','prg','cmd', + 'sass','sas','php','class' + ] +} + +// 不换行 +export const lineWrapping = [ + 'txt' +] + +export const modeInfo = [ + {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]}, + {name: "PGP", mimes: ["application/pgp", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["asc", "pgp", "sig"]}, + {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]}, + {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i}, + {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]}, + {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]}, + {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, + {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, + {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp", "cs"]}, + {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]}, + {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]}, + {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]}, + {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/}, + {name: "CoffeeScript", mimes: ["application/vnd.coffeescript", "text/coffeescript", "text/x-coffeescript"], mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]}, + {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]}, + {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]}, + {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]}, + {name: "Crystal", mime: "text/x-crystal", mode: "crystal", ext: ["cr"]}, + {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]}, + {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]}, + {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]}, + {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]}, + {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]}, + {name: "Django", mime: "text/x-django", mode: "django"}, + {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/}, + {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]}, + {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]}, + {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"}, + {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]}, + {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]}, + {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, + {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]}, + {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, + {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, + {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, + {name: "Esper", mime: "text/x-esper", mode: "sql"}, + {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]}, + {name: "FCL", mime: "text/x-fcl", mode: "fcl"}, + {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]}, + {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90", "f95"]}, + {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]}, + {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]}, + {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]}, + {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i}, + {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]}, + {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy", "gradle"], file: /^Jenkinsfile$/}, + {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]}, + {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]}, + {name: "Haskell (Literate)", mime: "text/x-literate-haskell", mode: "haskell-literate", ext: ["lhs"]}, + {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]}, + {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]}, + {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]}, + {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm", "handlebars", "hbs"], alias: ["xhtml"]}, + {name: "HTTP", mime: "message/http", mode: "http"}, + {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]}, + {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]}, + {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, + {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, + {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], + mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, + {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, + {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, + {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]}, + {name: "Jinja2", mime: "text/jinja2", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]}, + {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, + {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]}, + {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, + {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, + {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]}, + {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]}, + {name: "mIRC", mime: "text/mirc", mode: "mirc"}, + {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"}, + {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb", "wl", "wls"]}, + {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]}, + {name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]}, + {name: "MS SQL", mime: "text/x-mssql", mode: "sql"}, + {name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]}, + {name: "MySQL", mime: "text/x-mysql", mode: "sql"}, + {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i}, + {name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]}, + {name: "NTriples", mimes: ["application/n-triples", "application/n-quads", "text/n-triples"], + mode: "ntriples", ext: ["nt", "nq"]}, + {name: "Objective-C", mime: "text/x-objectivec", mode: "clike", ext: ["m"], alias: ["objective-c", "objc"]}, + {name: "Objective-C++", mime: "text/x-objectivec++", mode: "clike", ext: ["mm"], alias: ["objective-c++", "objc++"]}, + {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]}, + {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]}, + {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]}, + {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]}, + {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]}, + {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]}, + {name: "PHP", mimes: ["text/x-php", "application/x-httpd-php", "application/x-httpd-php-open"], mode: "php", ext: ["php", "php3", "php4", "php5", "php7", "phtml"]}, + {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]}, + {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]}, + {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]}, + {name: "PostgreSQL", mime: "text/x-pgsql", mode: "sql"}, + {name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]}, + {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]}, + {name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]}, + {name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/}, + {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]}, + {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]}, + {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r", "R"], alias: ["rscript"]}, + {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]}, + {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"}, + {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]}, + {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]}, + {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]}, + {name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]}, + {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]}, + {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]}, + {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]}, + {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]}, + {name: "Shell", mimes: ["text/x-sh", "application/x-sh"], mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/}, + {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]}, + {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]}, + {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]}, + {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]}, + {name: "Solr", mime: "text/x-solr", mode: "solr"}, + {name: "SML", mime: "text/x-sml", mode: "mllike", ext: ["sml", "sig", "fun", "smackspec"]}, + {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]}, + {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]}, + {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]}, + {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]}, + {name: "SQLite", mime: "text/x-sqlite", mode: "sql"}, + {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]}, + {name: "Stylus", mime: "text/x-styl", mode: "stylus", ext: ["styl"]}, + {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]}, + {name: "sTeX", mime: "text/x-stex", mode: "stex"}, + {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx", "tex"], alias: ["tex"]}, + {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v", "sv", "svh"]}, + {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]}, + {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]}, + {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"}, + {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"}, + {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]}, + {name: "Tornado", mime: "text/x-tornado", mode: "tornado"}, + {name: "troff", mime: "text/troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]}, + {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]}, + {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]}, + {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]}, + {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]}, + {name: "TypeScript-JSX", mime: "text/typescript-jsx", mode: "jsx", ext: ["tsx"], alias: ["tsx"]}, + {name: "Twig", mime: "text/x-twig", mode: "twig"}, + {name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]}, + {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]}, + {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]}, + {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]}, + {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]}, + {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]}, + {name: "Vue.js Component", mimes: ["script/x-vue", "text/x-vue"], mode: "vue", ext: ["vue"]}, + {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd", "svg"], alias: ["rss", "wsdl", "xsd"]}, + {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]}, + {name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]}, + {name: "YAML", mimes: ["text/x-yaml", "text/yaml"], mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]}, + {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]}, + {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]}, + {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]}, + {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]} +]; diff --git a/src/views/demo/index.vue b/src/views/demo/index.vue index 39d2bc3..dc25144 100644 --- a/src/views/demo/index.vue +++ b/src/views/demo/index.vue @@ -1,117 +1,29 @@ + + + diff --git a/src/views/favorite/index.vue b/src/views/favorite/index.vue index 9f1ef4b..9d23fda 100644 --- a/src/views/favorite/index.vue +++ b/src/views/favorite/index.vue @@ -23,7 +23,7 @@ data() { return { sortable: { - prop: 'updateDate', order: 'ascending' + prop: 'updateDate', order: 'descending' }, queryCondition: { isFavorite: true diff --git a/src/views/home/mobile/index.vue b/src/views/home/mobile/index.vue index 440ce7f..8af03da 100644 --- a/src/views/home/mobile/index.vue +++ b/src/views/home/mobile/index.vue @@ -166,7 +166,7 @@ import 'vant/lib/checkbox-group/style'; import {formatSize, formatTime, strlen, substring10} from '@/utils/number' - import api from '@/api/upload-api' + import api from '@/api/file-api' import IconFile from "../../../components/Icon/IconFile"; import Bus from '@/assets/js/bus' import {Dialog, Notify, Toast} from 'vant'; diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 1e34639..f494657 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -74,8 +74,8 @@ export default { } return { loginForm: { - username: 'jmal', - password: '123456' + username: '', + password: '' }, loginRules: { username: [{ required: true, trigger: 'blur', validator: validateUsername }], diff --git a/src/views/markdown/index.vue b/src/views/markdown/index.vue index 633cffb..8fb369e 100644 --- a/src/views/markdown/index.vue +++ b/src/views/markdown/index.vue @@ -27,7 +27,7 @@