diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 4315871fa..b8fbe5b43 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -3062,14 +3062,10 @@ export default { if (dialog && $A.isArray(dialog.position_msgs)) { const index = dialog.position_msgs.findIndex(({msg_id}) => msg_id == data.id); if (index > -1) { + state.readEndMark[data.dialog_id] = Math.max(data.id, $A.runNum(state.readEndMark[data.dialog_id])) dialog.position_msgs.splice(index, 1); dispatch("saveDialog", dialog) } - dispatch("dialogMsgMark", { - type: 'read', - dialog_id: data.dialog_id, - after_msg_id: data.id, - }) } } clearTimeout(state.readTimeout); @@ -3098,6 +3094,15 @@ export default { }) }).finally(_ => { state.readLoadNum++ + // + for (let dialog_id in state.readEndMark) { + dispatch("dialogMsgMark", { + type: 'read', + dialog_id, + after_msg_id: state.readEndMark[dialog_id], + }) + } + state.readEndMark = {} }); }, 50); }, diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index c48cc57bc..243cef294 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -130,6 +130,7 @@ export default { readLoadNum: 0, readTimeout: null, readWaitData: {}, + readEndMark: {}, // 文件 fileLists: [],