diff --git a/.env.development b/.env.development index 7cf965b..2fd45c1 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,6 @@ NODE_ENV = developement VUE_APP_BASE_NAME = developement VUE_APP_BASE_URL = http://localhost:8080 -NOTE_MAX_WORDS = 10240 +VUE_APP_NOTE_MAX_COUNT = 409600 +VUE_APP_NOTE_MAX_DESC = 400K diff --git a/.env.production b/.env.production index 725f7b6..fbb661b 100644 --- a/.env.production +++ b/.env.production @@ -1,4 +1,5 @@ NODE_ENV = production VUE_APP_BASE_NAME = production VUE_APP_BASE_URL = https://flagnote.com -NOTE_MAX_WORDS = 10240 +VUE_APP_NOTE_MAX_COUNT = 409600 +VUE_APP_NOTE_MAX_DESC = 400K \ No newline at end of file diff --git a/src/api/note.js b/src/api/note.js index f90ab86..993a74c 100644 --- a/src/api/note.js +++ b/src/api/note.js @@ -2,13 +2,8 @@ import axios from "axios"; import { getStoreKey } from "@/api/lock"; import storage from "@/libs/storage"; import { md5 } from "@/libs/secret"; +import NoteConstant from "@/libs/constants"; -const servicePath = process.env.VUE_APP_BASE_URL; -const noteMaxWords = parseInt(process.env.NOTE_MAX_WORDS); - -export { - noteMaxWords -} export function saveNote(noteForm, secret) { let storeKey = secret.storeKey; @@ -19,6 +14,7 @@ export function saveNote(noteForm, secret) { let note = { lock: starray[0], cipher: starray[1], + initTime: starray[3], text: starray[4], key: noteForm.key, }; @@ -32,13 +28,14 @@ export function saveNote(noteForm, secret) { form.append("lock", note.lock); form.append("key", note.key); form.append("md5", md5(note.text)); + form.append("initTime",note.initTime) let config = { headers: { "Content-Type": "multipart/form-data" }, }; return axios({ - url: servicePath + "/note/" + noteForm.key, + url: NoteConstant.servicePath + "/note/" + noteForm.key, method: "post", data: form, config: config, @@ -54,7 +51,7 @@ export function deleteNote(key) { }; return axios({ - url: servicePath + "/note/" + key + "/delete", + url: NoteConstant.servicePath + "/note/" + key + "/delete", method: "post", data: note, }); @@ -62,7 +59,7 @@ export function deleteNote(key) { export function getNoteBlob(key) { return axios({ - url: servicePath + "/note/" + key, + url: NoteConstant.servicePath + "/note/" + key, method: "get", responseType: "blob", ignoreError: 1, @@ -72,7 +69,7 @@ export function getNoteBlob(key) { } export function getNoteMeta(key) { - let url = servicePath + "/note/" + key + "/noteMeta"; + let url = NoteConstant.servicePath + "/note/" + key + "/noteMeta"; let noteMeta = null; try { noteMeta = ajaxGet(url); @@ -83,7 +80,7 @@ export function getNoteMeta(key) { } export function getKeyMeta() { - let url = servicePath + "/note/keyMeta"; + let url = NoteConstant.servicePath + "/note/keyMeta"; let keyMeta = null; try { keyMeta = ajaxGet(url); diff --git a/src/i18n/config/en.js b/src/i18n/config/en.js index 07e9cc8..dc1d8de 100644 --- a/src/i18n/config/en.js +++ b/src/i18n/config/en.js @@ -25,7 +25,7 @@ const en = { "100005": "Not Published!", "100006": "Server Unavailable!", "100011": "Empty Note!", - "100012": "Too Large, Beyond 400K!", + "100012": "Too Large, Beyond {0}!", } }; export default en; diff --git a/src/i18n/config/zh.js b/src/i18n/config/zh.js index 57e8cc7..b838154 100644 --- a/src/i18n/config/zh.js +++ b/src/i18n/config/zh.js @@ -25,7 +25,7 @@ const zh = { "100005": "笔记未分享!", "100006": "服务器不可用!", "100011": "笔记为空!", - "100012": "笔记过大,超过400K!", + "100012": "笔记过大,超过{0}!", } }; export default zh; diff --git a/src/libs/constants.js b/src/libs/constants.js new file mode 100644 index 0000000..9e1f351 --- /dev/null +++ b/src/libs/constants.js @@ -0,0 +1,9 @@ +const servicePath = process.env.VUE_APP_BASE_URL; +const noteMaxCount = process.env.VUE_APP_NOTE_MAX_COUNT; +const noteMaxDesc = process.env.VUE_APP_NOTE_MAX_DESC; + +export default { + servicePath, + noteMaxCount, + noteMaxDesc +} \ No newline at end of file diff --git a/src/main.js b/src/main.js index 6eafbb3..d43534c 100644 --- a/src/main.js +++ b/src/main.js @@ -5,8 +5,9 @@ import axios from 'axios' import VueAxios from 'vue-axios' import './plugins/iview.js' import i18n from './i18n/' +import NoteConstant from "@/libs/constants"; -axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; +axios.defaults.baseURL = NoteConstant.servicePath; Vue.use(VueAxios, axios) diff --git a/src/views/EditNote.vue b/src/views/EditNote.vue index d8bd912..c785759 100644 --- a/src/views/EditNote.vue +++ b/src/views/EditNote.vue @@ -203,6 +203,7 @@ import storage from "@/libs/storage"; import { setStoreText } from "@/libs/noteStorage"; import { saveAs } from 'file-saver'; import { isWeixin } from "@/libs/utils"; +import NoteConstant from "@/libs/constants"; export default { name: 'EditNote', @@ -343,8 +344,8 @@ export default { }, recordText() { let text = this.noteForm.text; - if (text.length > 409600) { - this.errorInfo = this.$t('error.100012'); + if (text.length > NoteConstant.noteMaxCount) { + this.errorInfo = this.$t('error.100012',[NoteConstant.noteMaxDesc]); this.model.showError = true; return; } @@ -372,8 +373,8 @@ export default { let end = event.currentTarget.selectionEnd; let text = event.currentTarget.value; - if (text.length > 409600) { - this.errorInfo = this.$t('error.100012'); + if (text.length > NoteConstant.noteMaxCount) { + this.errorInfo = this.$t('error.100012',[NoteConstant.noteMaxDesc]); this.model.showError = true; return; } @@ -418,8 +419,8 @@ export default { }, validateForm() { let text = this.noteForm.text; - if (text.length > 409600) { - this.errorInfo = this.$t('error.100012'); + if (text.length > NoteConstant.noteMaxCount) { + this.errorInfo = this.$t('error.100012',[NoteConstant.noteMaxDesc]); this.model.showError = true; return false; } diff --git a/src/views/ErrorNote.vue b/src/views/ErrorNote.vue index 2dcb559..f1434de 100644 --- a/src/views/ErrorNote.vue +++ b/src/views/ErrorNote.vue @@ -145,6 +145,10 @@ export default { } }, mounted() { + this.$nextTick(() => { + window.scrollTo(0, 0); + }); + //this.bindCopyTextEvent(); const myObserver = new ResizeObserver(entries => { @@ -161,6 +165,7 @@ export default { const someOtherEl = document.querySelector('#wrapper'); myObserver.observe(someOtherEl); + }, methods: { refreshPage() { diff --git a/yarn.lock b/yarn.lock index 1bd1ca9..9e63f41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2313,15 +2313,6 @@ clipboardy@^2.3.0: execa "^1.0.0" is-wsl "^2.1.1" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2, cliui@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2704,11 +2695,6 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: dependencies: ms "2.1.2" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2781,11 +2767,6 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dijkstrajs@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" - integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2904,11 +2885,6 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encode-utf8@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" - integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3447,7 +3423,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -4875,11 +4851,6 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - popper.js@^1.14.6: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" @@ -5231,16 +5202,6 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qrcode@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" - integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - qrcodejs2@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz#465afe5e39f19facecb932c11f7a186109146ae1" @@ -5412,11 +5373,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5602,11 +5558,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -6468,11 +6419,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - which-typed-array@^1.1.2: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" @@ -6517,15 +6463,6 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -6550,11 +6487,6 @@ ws@^8.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -6575,36 +6507,11 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yargs@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"