mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-17 06:32:51 +00:00
perf: 优化消息保存覆盖
This commit is contained in:
parent
e67ce9a438
commit
88fb1d8e62
28
resources/assets/js/store/actions.js
vendored
28
resources/assets/js/store/actions.js
vendored
@ -2857,20 +2857,36 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if ($A.isJson(data)) {
|
} else if ($A.isJson(data)) {
|
||||||
const index = state.dialogMsgs.findIndex(({id}) => id == data.id);
|
const index = state.dialogMsgs.findIndex(({id}) => id == data.id);
|
||||||
data = Object.assign({}, state.dialogMsgs[index], data)
|
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
|
const original = state.dialogMsgs[index]
|
||||||
|
if (original.read_at) {
|
||||||
|
delete data.read_at
|
||||||
|
}
|
||||||
|
data = Object.assign({}, original, data)
|
||||||
state.dialogMsgs.splice(index, 1, data);
|
state.dialogMsgs.splice(index, 1, data);
|
||||||
} else {
|
} else {
|
||||||
state.dialogMsgs.push(data);
|
state.dialogMsgs.push(data);
|
||||||
}
|
}
|
||||||
$A.IDBSave("dialogMsgs", state.dialogMsgs, 600)
|
$A.IDBSave("dialogMsgs", state.dialogMsgs, 600)
|
||||||
//
|
//
|
||||||
const dialog = state.cacheDialogs.find(({id, last_msg}) => id == data.dialog_id && last_msg && last_msg.id === data.id);
|
const dialog = state.cacheDialogs.find(({id}) => id == data.dialog_id);
|
||||||
if (dialog) {
|
if (dialog) {
|
||||||
dispatch("saveDialog", {
|
let isUpdate = false
|
||||||
id: data.dialog_id,
|
if (!data.read_at) {
|
||||||
last_msg: Object.assign({}, dialog.last_msg, data),
|
if (dialog.unread_one) {
|
||||||
})
|
dialog.unread_one = Math.min(dialog.unread_one, data.id)
|
||||||
|
} else {
|
||||||
|
dialog.unread_one = data.id
|
||||||
|
}
|
||||||
|
isUpdate = true
|
||||||
|
}
|
||||||
|
if (dialog.last_msg && dialog.last_msg.id == data.id) {
|
||||||
|
dialog.last_msg = Object.assign({}, dialog.last_msg, data)
|
||||||
|
isUpdate = true
|
||||||
|
}
|
||||||
|
if (isUpdate) {
|
||||||
|
dispatch("saveDialog", dialog)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user