diff --git a/package.json b/package.json index c2c4588..c3920c1 100644 --- a/package.json +++ b/package.json @@ -14,40 +14,42 @@ "prepare": "husky install" }, "dependencies": { - "axios": "^0.27.2", + "axios": "^0.28.1", "babel-plugin-import": "^1.13.6", "buffer": "^6.0.3", "clipboard": "^2.0.11", - "core-js": "^3.8.3", - "crypto-js": "^4.1.1", + "core-js": "^3.37.1", + "crypto-js": "^4.2.0", "escape-html": "^1.0.3", "file-saver": "^2.0.5", "github-markdown-css": "^5.6.1", "html2canvas": "^1.4.1", + "json-editor-vue": "^0.15.1", "pako": "^2.1.0", "qrcodejs2-fixes": "^0.0.2", - "view-ui-plus": "^1.3.10", - "vue": "^3.2.13", + "view-ui-plus": "^1.3.18", + "vue": "^3.4.31", "vue-axios": "^3.5.2", - "vue-i18n": "^9.2.2", + "vue-i18n": "^9.13.1", + "vue-json-pretty": "^2.4.0", "vue-markdown-render": "^2.2.1", - "vue-router": "^4.1.6", - "vuex": "^4.0.0" + "vue-router": "^4.4.0", + "vuex": "^4.1.0" }, "devDependencies": { - "@vue/cli-plugin-babel": "~5.0.0", - "@vue/cli-plugin-router": "~5.0.0", - "@vue/cli-plugin-vuex": "~5.0.0", - "@vue/cli-service": "~5.0.0", + "@vue/cli-plugin-babel": "~5.0.8", + "@vue/cli-plugin-router": "~5.0.8", + "@vue/cli-plugin-vuex": "~5.0.8", + "@vue/cli-service": "~5.0.8", "compression-webpack-plugin": "^11.1.0", "eslint": "^8.14.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-vue": "^8.7.1", "husky": "^7.0.4", - "javascript-obfuscator": "^4.1.0", - "less": "^4.0.0", - "less-loader": "^10.2.0", + "javascript-obfuscator": "^4.1.1", + "less": "^4.2.0", + "less-loader": "^12.2.0", "mockjs": "^1.1.0", "webpack-obfuscator": "^3.5.1" }, diff --git a/src/App.vue b/src/App.vue index a5a9cc6..9b65635 100644 --- a/src/App.vue +++ b/src/App.vue @@ -41,6 +41,10 @@ body { padding: 0px; } +.ivu-layout-footer { + padding: 5px; +} + .layout-footer-center { background: #dddddd; text-align: center; @@ -51,6 +55,10 @@ body { border-color: #e8eaec; } +.ivu-btn:focus { + box-shadow: none !important; +} + .layout { height: 100%; background: #dddddd; @@ -60,10 +68,6 @@ body { background: #dddddd; } -.ivu-btn:focus { - box-shadow: none !important; -} - .monoFt { @@ -154,10 +158,8 @@ br::-moz-selection { display: none; } -/* button span { - margin-left: 0px !important; - font-size: 16px !important; - font-family: apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif; - margin-bottom: 6px; -} */ +.fnmodal { + align-items: center; + justify-content: center; +} diff --git a/src/router/index.js b/src/router/index.js index f681916..2728f32 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,7 +1,8 @@ -import { createRouter, createWebHistory } from 'vue-router' +import { createRouter, createWebHistory } from "vue-router"; import EditNote from "@/views/EditNote.vue"; import ViewNote from "@/views/ViewNote.vue"; -import ViewMdNote from "@/views/ViewMdNote.vue"; +// import ViewMdNote from "@/views/ViewMdNote.vue"; +// import ViewJsonNote from "@/views/ViewJsonNote.vue"; import ErrorRoute from "@/views/ErrorRoute.vue"; import ErrorNote from "@/views/ErrorNote.vue"; import { getNoteMeta } from "@/api/note"; @@ -34,11 +35,15 @@ function getNoteView() { let key = path.substring(1, path.length); let isMd = path.endsWith(".md"); - if (isMd) { key = path.substring(1, path.length - 3); } + let isJson = path.endsWith(".json"); + if (isJson) { + key = path.substring(1, path.length - 5); + } + keyMeta = storage.local.getObject(key + ".keyMeta"); if (keyMeta && keyMeta.key) { key = keyMeta.key; @@ -51,13 +56,15 @@ function getNoteView() { return ErrorNote; } - if (keyMeta && keyMeta.key && !isMd) { + if (keyMeta && keyMeta.key && !isMd && !isJson) { //firstEdit return EditNote; } //set noteMeta - noteMeta = getNoteMeta(key); + if (noteMeta == null) { + noteMeta = getNoteMeta(key); + } //server error if (!noteMeta) { @@ -73,9 +80,11 @@ function getNoteView() { //validated state if (1 == noteMeta.state) { - if(isMd){ + if (isMd) { return ViewMdNote; - }else{ + } else if (isJson) { + return ViewJsonNote; + } else { return ViewNote; } } @@ -88,7 +97,8 @@ function getNoteView() { if (noteMeta.ttl > 0) { errorMeta = 100003; return ErrorNote; - } else {// timeout + } else { + // timeout errorMeta = 100004; return ErrorNote; } @@ -100,12 +110,14 @@ function getNoteView() { if (storage.local.getText(storeKey)) { return EditNote; } else { - //storage is empty - let df = storage.session.getText(storeKey + "_delete") - if (df) {//unsubmitted,user deleted. + //storage is empty + let df = storage.session.getText(storeKey + "_delete"); + if (df) { + //unsubmitted,user deleted. errorMeta = 100003; return ErrorNote; - } else {//unsubmitted + } else { + //unsubmitted errorMeta = 100005; return ErrorNote; } @@ -123,22 +135,40 @@ const routes = [ path: "/:name([a-z0-9]{10,20})", name: "note", component: getNoteView(), - meta: { keyMeta: getKeyMetaParam(), noteMeta: getNoteMetaParam(), errorMeta: getErrorMetaParam() }, + meta: { + keyMeta: getKeyMetaParam(), + noteMeta: getNoteMetaParam(), + errorMeta: getErrorMetaParam(), + }, }, - { - path: "/:name([a-z0-9]{10,20}).md", - name: "md", - component: getNoteView(), - meta: { keyMeta: getKeyMetaParam(), noteMeta: getNoteMetaParam(), errorMeta: getErrorMetaParam() }, - }, - { path: "/:path(.*)", component: ErrorRoute } + // { + // path: "/:name([a-z0-9]{10,20}).md", + // name: "md", + // component: getNoteView(), + // meta: { + // keyMeta: getKeyMetaParam(), + // noteMeta: getNoteMetaParam(), + // errorMeta: getErrorMetaParam(), + // }, + // }, + // { + // path: "/:name([a-z0-9]{10,20}).json", + // name: "json", + // component: getNoteView(), + // meta: { + // keyMeta: getKeyMetaParam(), + // noteMeta: getNoteMetaParam(), + // errorMeta: getErrorMetaParam(), + // }, + // }, + { path: "/:path(.*)", component: ErrorRoute }, ]; const router = createRouter({ history: createWebHistory(process.env.VUE_APP_URL_BASE_PATH), linkExactActiveClass: "active", mode: "history", - routes -}) + routes, +}); export default router; diff --git a/src/views/EditNote.vue b/src/views/EditNote.vue index ed12673..64b359e 100644 --- a/src/views/EditNote.vue +++ b/src/views/EditNote.vue @@ -1,42 +1,6 @@