diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 920c285f4..d92e16975 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -182,7 +182,7 @@ :extra-props="{dialogData, operateVisible, operateItem, isMyDialog, msgId, unreadOne, scrollIng, readEnabled}" :estimate-size="dialogData.type=='group' ? 105 : 77" - :keeps="keeps" + :keeps="dialogMsgKeep" :disabled="scrollDisabled" @activity="onActivity" @scroll="onScroll" @@ -664,7 +664,6 @@ export default { data() { return { - keeps: 25, loadIng: 0, msgItem: DialogItem, @@ -811,10 +810,11 @@ export default { 'dialogTodos', 'dialogMsgTops', 'dialogMsgTransfer', + 'dialogMsgKeep', + 'dialogIns', 'cacheDialogs', 'wsOpenNum', 'touchBackInProgress', - 'dialogIns', 'cacheUserBasic', 'fileLinks', 'cacheEmojis', diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 2f766c17e..78e0873bc 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2733,23 +2733,22 @@ export default { * @param dialog_id */ closeDialog({state, dispatch}, dialog_id) { - $A.execMainDispatch("closeDialog", dialog_id) - // if (!/^\d+$/.test(dialog_id)) { return } + $A.execMainDispatch("closeDialog", dialog_id) + // // 更新草稿状态 const dialog = state.cacheDialogs.find(item => item.id == dialog_id); if (dialog) { dialog.extra_draft_has = dialog.extra_draft_content ? 1 : 0 } - // 关闭会话后只保留会话最后50条数据 - const retain = 25 + // 关闭会话后删除会话超限消息 const msgs = state.dialogMsgs.filter(item => item.dialog_id == dialog_id) - if (msgs.length > retain) { + if (msgs.length > state.dialogMsgKeep) { const delIds = msgs.sort((a, b) => { return b.id - a.id - }).splice(retain).map(item => item.id) + }).splice(state.dialogMsgKeep).map(item => item.id) state.dialogMsgs = state.dialogMsgs.filter(item => !delIds.includes(item.id)) $A.IDBSave("dialogMsgs", state.dialogMsgs, 600) } diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index c48cc57bc..c53b58f5b 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -111,6 +111,7 @@ export default { // 会话聊天 dialogId: 0, dialogMsgId: 0, + dialogMsgKeep: 25, dialogSearchMsgId: 0, dialogIns: [], dialogMsgs: [],