From 39781c9cd7b6d5056b0c7d18dd7d0a93dbb358b3 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 22 Sep 2025 06:01:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DialogWrapper 组件中添加 handlerMsgTransfer 方法以简化消息传递逻辑 - 更新 TaskDetail 组件以直接使用状态管理中的 dialogMsgTransfer 数据 --- .../pages/manage/components/DialogWrapper.vue | 44 ++++++++++++------- .../js/pages/manage/components/TaskDetail.vue | 4 +- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index bbddf27b8..e2705510d 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -1227,6 +1227,8 @@ export default { // window.localStorage.removeItem('__cache:vote__') window.localStorage.removeItem('__cache:unfoldWordChain__') + // + this.handlerMsgTransfer() }, immediate: true }, @@ -1325,23 +1327,8 @@ export default { }, dialogMsgTransfer: { - handler({time, msgFile, msgRecord, msgText, sendType, dialogId}) { - if (time < $A.dayjs().unix()) { - return - } - if (dialogId != this.dialogId) { - return; - } - this.$store.state.dialogMsgTransfer.time = 0; - this.$nextTick(() => { - if ($A.isArray(msgFile) && msgFile.length > 0) { - this.sendFileMsg(msgFile); - } else if ($A.isJson(msgRecord) && msgRecord.duration > 0) { - this.sendRecord(msgRecord); - } else if (msgText) { - this.sendMsg(msgText, sendType); - } - }); + handler() { + this.handlerMsgTransfer(); }, immediate: true }, @@ -4467,6 +4454,29 @@ export default { } this.$store.dispatch("scrollBottom", this.$refs.footer) }, 500) + }, + + handlerMsgTransfer() { + const {time, msgFile, msgRecord, msgText, sendType, dialogId} = this.dialogMsgTransfer || {} + if (!/^\d+$/.test(time) || !/^\d+$/.test(dialogId)) { + return + } + if (time < $A.dayjs().unix()) { + return + } + if (dialogId != this.dialogId) { + return + } + this.$store.state.dialogMsgTransfer.time = 0; + this.$nextTick(() => { + if ($A.isArray(msgFile) && msgFile.length > 0) { + this.sendFileMsg(msgFile); + } else if ($A.isJson(msgRecord) && msgRecord.duration > 0) { + this.sendRecord(msgRecord); + } else if (msgText) { + this.sendMsg(msgText, sendType); + } + }); } } } diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index d5f8c01e9..0a2510fd2 100755 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -265,7 +265,6 @@ -
@@ -1691,7 +1690,7 @@ export default { openDialogBefore(dialogId, sendType) { if (sendType !== true) { - const transferData = { + this.$store.state.dialogMsgTransfer = { time: $A.dayjs().unix() + 10, msgRecord: this.msgRecord, msgFile: this.msgFile, @@ -1702,7 +1701,6 @@ export default { this.msgRecord = {}; this.msgFile = []; this.msgText = ""; - this.$store.state.dialogMsgTransfer = transferData this.$store.dispatch("saveDialogDraft", {id: `t_${this.taskId}`, content: ""}) }