From ca5f4ad8a06b05ab2393369515eb0948e0bba0b0 Mon Sep 17 00:00:00 2001 From: Jesse-Ma <24167796@qq.com> Date: Mon, 5 Dec 2022 13:18:12 +0800 Subject: [PATCH] error message --- src/App.vue | 5 --- src/api/note.js | 14 +++++++-- src/i18n/config/en.js | 4 ++- src/i18n/config/zh.js | 4 ++- src/router/index.js | 20 +++++++++++- src/views/EditNote.vue | 60 +++++++++++++++++++++++++----------- src/views/ErrorNote.vue | 21 ------------- src/views/ErrorView.vue | 5 +-- src/views/InvalidateNote.vue | 4 +-- src/views/ViewNote.vue | 27 +++++++++++++--- 10 files changed, 106 insertions(+), 58 deletions(-) delete mode 100644 src/views/ErrorNote.vue diff --git a/src/App.vue b/src/App.vue index 3607c4b..d5dd386 100644 --- a/src/App.vue +++ b/src/App.vue @@ -38,11 +38,6 @@ body { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } -#nprogress .bar { - background: red !important; -} - - .showBlock { display: block; } diff --git a/src/api/note.js b/src/api/note.js index 3335f20..c5899f9 100644 --- a/src/api/note.js +++ b/src/api/note.js @@ -68,13 +68,23 @@ export function getNoteBlob(key) { export function getNoteMeta(key) { let url = servicePath + "/note/" + key + "/noteMeta"; - let noteMeta = ajaxGet(url); + let noteMeta = null; + try { + noteMeta = ajaxGet(url); + } catch (error) { + console.log(error); + } return noteMeta; } export function getKeyMeta() { let url = servicePath + "/note/keyMeta"; - let keyMeta = ajaxGet(url); + let keyMeta = null; + try { + keyMeta = ajaxGet(url); + } catch (error) { + console.log(error); + } return keyMeta; } diff --git a/src/i18n/config/en.js b/src/i18n/config/en.js index c1a2fb3..d940c52 100644 --- a/src/i18n/config/en.js +++ b/src/i18n/config/en.js @@ -22,7 +22,9 @@ const en = { "100003": "Deleted!", "100004": "Expired!", "100005": "Not Available!", - "100006": "100006", + "100006": "Server Unavailable!", + "100011": "Empty Note!", + "100012": "Too Large, Beyond 200K!", } }; export default en; diff --git a/src/i18n/config/zh.js b/src/i18n/config/zh.js index 5ec596d..8ea8ffe 100644 --- a/src/i18n/config/zh.js +++ b/src/i18n/config/zh.js @@ -22,7 +22,9 @@ const zh = { "100003": "内容已删除!", "100004": "内容已过期!", "100005": "内容不存在!", - "100006": "100006", + "100006": "服务器不可用!", + "100011": "内容为空!", + "100012": "内容过大,超过200K!", } }; export default zh; diff --git a/src/router/index.js b/src/router/index.js index 532a045..0731f33 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -27,6 +27,10 @@ function getErrorMetaParam() { } function getNoteView() { + if(errorMeta){ + return; + } + let path = location.pathname; let key = path.substring(1, path.length); @@ -49,8 +53,14 @@ function getNoteView() { //set noteMeta noteMeta = getNoteMeta(key); + //server error + if (!noteMeta) { + errorMeta = 100006; + return InvalidateNote; + } + //invalidated key - if (!noteMeta || !noteMeta.key) { + if (!noteMeta.key) { errorMeta = 100002; return InvalidateNote; } @@ -105,6 +115,13 @@ function getHomeRedirect() { //setKeyMeta keyMeta = getKeyMeta(); + + // server error + if (!keyMeta) { + errorMeta = 100006; + return "/invalidatenote"; + } + return "/" + keyMeta.key; } @@ -114,6 +131,7 @@ const routes = [ name: "home", redirect: getHomeRedirect(), }, + { path: "/invalidatenote", component: InvalidateNote }, { path: "/:name([a-z0-9]{1,20})", name: "note", diff --git a/src/views/EditNote.vue b/src/views/EditNote.vue index 89a36b7..0a8cffc 100644 --- a/src/views/EditNote.vue +++ b/src/views/EditNote.vue @@ -149,7 +149,7 @@
+ @on-keydown="recordEventKdown" @on-keyup="recordEventKup"/>
@@ -174,6 +174,16 @@

+ +

+ {{ errorInfo }} +

+

+ +

+
+ @@ -216,9 +226,11 @@ export default { showDelete: false, deleting: false, showDownloadText: false, + showError: false, }, toTopState: false, showMenuState: false, + errorInfo: '', } }, created() { @@ -325,24 +337,28 @@ export default { }, recordText() { let text = this.noteForm.text; - if (text.length > 102400) { - alert("text length is " + text.length + ",beyond 102400!!!"); + if (text.length > 204800) { + this.errorInfo = this.$t('error.100012'); + this.model.showError = true; + return; } setStoreText(this.noteForm, this.state, this.secret); }, - // recordEventKup(event) { - // let tn = event.currentTarget.value; - // let ss = event.currentTarget.selectionStart; - // let cline = tn.substring(0, ss).split('\n').length; + recordEventKup(event) { + let tn = event.currentTarget.value; + let ss = event.currentTarget.selectionStart; + let cline = tn.substring(0, ss).split('\n').length; - // var noteTop = parseFloat(window.getComputedStyle(event.currentTarget).lineHeight) * cline; - // var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; - // if (noteTop < scrollTop + 10) { - // window.scrollTo(0, noteTop - 10); - // } + var noteTop = parseFloat(window.getComputedStyle(event.currentTarget).lineHeight) * cline; + console.log(noteTop) + var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; + console.log(scrollTop) + if (noteTop < scrollTop+10) { + window.scrollTo(0, noteTop-10); + } - // }, + }, recordEventKdown(event) { if (event.key == "Tab") { @@ -351,8 +367,10 @@ export default { let end = event.currentTarget.selectionEnd; let text = event.currentTarget.value; - if (text.length > 102400) { - alert("text length is " + text.length + ",beyond 102400!!!"); + if (text.length > 204800) { + this.errorInfo = this.$t('error.100012'); + this.model.showError = true; + return; } let tab = '\t';//\t @@ -395,16 +413,22 @@ export default { }, validateForm() { let text = this.noteForm.text; - if (text.length > 102400) { - alert("text length is " + text.length + ",beyond 102400!!!"); + if (text.length > 204800) { + this.errorInfo = this.$t('error.100012'); + this.model.showError = true; return false; } if (text.length == 0) { - alert("text is empty!!!"); + this.errorInfo = this.$t('error.100011'); + this.model.showError = true; return false; } return true; }, + cloaseErrorMessage(){ + this.errorInfo = ''; + this.model.showError = false; + }, submitNote() { if (this.state.locking == 1) { return; diff --git a/src/views/ErrorNote.vue b/src/views/ErrorNote.vue deleted file mode 100644 index b46882e..0000000 --- a/src/views/ErrorNote.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/ErrorView.vue b/src/views/ErrorView.vue index f25ea49..fc9cf7c 100644 --- a/src/views/ErrorView.vue +++ b/src/views/ErrorView.vue @@ -11,7 +11,8 @@ export default { data() { return {} }, - created() { - } + created() { + alert("error") + } } diff --git a/src/views/InvalidateNote.vue b/src/views/InvalidateNote.vue index 33a6e8d..8984699 100644 --- a/src/views/InvalidateNote.vue +++ b/src/views/InvalidateNote.vue @@ -106,7 +106,7 @@