From 9d5c5e0982ff1103485bf9cc73b59c2d4917d0d1 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 22 Feb 2023 11:48:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=9C=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8F=90=E9=86=92=E6=89=93=E5=BC=80=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=97=A0=E6=B3=95=E8=81=8A=E5=A4=A9=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/manage/components/DialogWrapper.vue | 4 ++-- .../js/pages/manage/components/TaskDetail.vue | 13 ++++++------ resources/assets/js/store/actions.js | 20 +++++++++++-------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index de36fe2a9..f356f03a9 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -850,8 +850,8 @@ export default { }, dialogMsgTransfer: { - handler({time, msgFile, msgRecord, msgText}) { - if (time > $A.Time()) { + handler({time, msgFile, msgRecord, msgText, dialogId}) { + if (time > $A.Time() && dialogId == this.dialogId) { this.$store.state.dialogMsgTransfer.time = 0; this.$nextTick(() => { if ($A.isArray(msgFile) && msgFile.length > 0) { diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index 4d0566339..2364d4ffe 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -799,10 +799,8 @@ export default { openTask: { handler(data) { this.taskDetail = $A.cloneJSON(data); - if (this.$refs.name) { - this.__openTask && clearTimeout(this.__openTask); - this.__openTask = setTimeout(this.$refs.name.resizeTextarea, 100) - } + this.__openTask && clearTimeout(this.__openTask); + this.__openTask = setTimeout(_ => this.$refs.name?.resizeTextarea(), 100) }, immediate: true, deep: true @@ -1291,11 +1289,12 @@ export default { this.$nextTick(() => { if (this.windowSmall) { $A.onBlur(); - this.$store.state.dialogMsgTransfer = { + const transferData = { time: $A.Time() + 10, msgRecord: this.msgRecord, msgFile: this.msgFile, msgText: typeof msgText === 'string' && msgText ? msgText : this.msgText, + dialogId: data.dialog_id, }; this.msgRecord = {}; this.msgFile = []; @@ -1304,7 +1303,9 @@ export default { // 如果当前打开着对话窗口则关闭任务窗口 this.$store.dispatch("openTask", 0); } - this.$store.dispatch('openDialog', data.dialog_id) + this.$store.dispatch('openDialog', data.dialog_id).then(_ => { + this.$store.state.dialogMsgTransfer = transferData + }) } else { this.sendDialogMsg(msgText); } diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 8a97868f4..a3cdb5495 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2245,16 +2245,20 @@ export default { * @param state * @param dispatch * @param dialog_id + * @returns {Promise} */ openDialog({state, dispatch}, dialog_id) { - let search_msg_id; - if ($A.isJson(dialog_id)) { - search_msg_id = dialog_id.search_msg_id; - dialog_id = dialog_id.dialog_id; - } - requestAnimationFrame(_ => { - state.dialogSearchMsgId = /^\d+$/.test(search_msg_id) ? search_msg_id : 0; - state.dialogId = /^\d+$/.test(dialog_id) ? dialog_id : 0; + return new Promise(resolve => { + let search_msg_id; + if ($A.isJson(dialog_id)) { + search_msg_id = dialog_id.search_msg_id; + dialog_id = dialog_id.dialog_id; + } + requestAnimationFrame(_ => { + state.dialogSearchMsgId = /^\d+$/.test(search_msg_id) ? search_msg_id : 0; + state.dialogId = /^\d+$/.test(dialog_id) ? dialog_id : 0; + resolve() + }) }) },