From a06a4095b609f6255fc5ec738e47946c2026aa87 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 12 Dec 2024 23:10:33 +0800 Subject: [PATCH] no message --- resources/assets/js/App.vue | 1 + resources/assets/js/components/TagInput.vue | 2 +- .../js/pages/manage/components/FileContent.vue | 1 + resources/assets/js/pages/single/task.vue | 1 + resources/assets/js/store/actions.js | 17 ++++++++++++++++- 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/resources/assets/js/App.vue b/resources/assets/js/App.vue index ee6106d7e..f7f99b994 100755 --- a/resources/assets/js/App.vue +++ b/resources/assets/js/App.vue @@ -456,6 +456,7 @@ export default { return; } window.__onBeforeUnload = () => { + this.$store.dispatch("onBeforeUnload"); if (this.$Modal.removeLast()) { return true; } diff --git a/resources/assets/js/components/TagInput.vue b/resources/assets/js/components/TagInput.vue index 627fc69f0..4c65d3bcd 100755 --- a/resources/assets/js/components/TagInput.vue +++ b/resources/assets/js/components/TagInput.vue @@ -227,7 +227,7 @@ if (this.max > 0 && this.disSource.length >= this.max) { this.content = ''; this.tis = '最多只能添加' + this.max + '个'; - clearInterval(this.tisTimeout); + clearTimeout(this.tisTimeout); this.tisTimeout = setTimeout(() => { this.tis = ''; }, 2000); return; } diff --git a/resources/assets/js/pages/manage/components/FileContent.vue b/resources/assets/js/pages/manage/components/FileContent.vue index e66ac3da0..5f9e48d4b 100644 --- a/resources/assets/js/pages/manage/components/FileContent.vue +++ b/resources/assets/js/pages/manage/components/FileContent.vue @@ -188,6 +188,7 @@ export default { // if (this.$isSubElectron) { window.__onBeforeUnload = () => { + this.$store.dispatch("onBeforeUnload"); if (!this.equalContent) { $A.modalConfirm({ content: '修改的内容尚未保存,确定要放弃修改吗?', diff --git a/resources/assets/js/pages/single/task.vue b/resources/assets/js/pages/single/task.vue index 0f2e76626..dfdd2c69f 100644 --- a/resources/assets/js/pages/single/task.vue +++ b/resources/assets/js/pages/single/task.vue @@ -53,6 +53,7 @@ export default { // if (this.$isSubElectron) { window.__onBeforeUnload = () => { + this.$store.dispatch("onBeforeUnload"); if (this.$refs.taskDetail.checkUpdate()) { this.canUpdateBlur = false; $A.modalConfirm({ diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index c6c465227..bd5186a04 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -941,6 +941,17 @@ export default { }) }, + /** + * Electron 页面卸载触发 + * @param dispatch + */ + onBeforeUnload({dispatch}) { + if ($A.isSubElectron && $A.isJson(window.__dialogDraft)) { + dispatch("saveDialog", window.__dialogDraft) + window.__dialogDraft = null; + } + }, + /** *****************************************************************************************/ /** *************************************** 新窗口打开 ****************************************/ /** *****************************************************************************************/ @@ -3065,7 +3076,11 @@ export default { */ saveDialogDraft({state, dispatch}, data) { data.extra_draft_content = $A.filterInvalidLine(data.extra_draft_content) - state.dialogDraftTimer[data.id] && clearInterval(state.dialogDraftTimer[data.id]) + if ($A.isSubElectron) { + window.__dialogDraft = data + return + } + state.dialogDraftTimer[data.id] && clearTimeout(state.dialogDraftTimer[data.id]) state.dialogDraftTimer[data.id] = setTimeout(_ => { if (state.dialogId != data.id) { data.extra_draft_has = data.extra_draft_content ? 1 : 0