diff --git a/resources/assets/js/App.vue b/resources/assets/js/App.vue index f7f99b994..8043648fc 100755 --- a/resources/assets/js/App.vue +++ b/resources/assets/js/App.vue @@ -104,6 +104,7 @@ export default { '$route': { handler(to) { this.routePath = to.path + this.$store.state.routeName = to.name }, immediate: true, }, diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index e9fd0c7e9..fb8c530fa 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2576,6 +2576,12 @@ export default { return !state.dialogMsgs.find(m => m.id == id)?.read_at }) } + if (data.last_at + && original.last_at + && $A.dayjs(data.last_at) < $A.dayjs(original.last_at)) { + delete data.last_at + delete data.last_msg + } state.cacheDialogs.splice(index, 1, Object.assign({}, original, data)); } else { state.cacheDialogs.push(data); @@ -3735,6 +3741,10 @@ export default { }, 3000); }; state.ws.onmessage = async (e) => { + if ($A.inArray(state.routeName, ['preload', '404'])) { + wgLog && console.log("[WS] Preload", e); + return; + } wgLog && console.log("[WS] Message", e); let result = $A.jsonParse(e.data); if (result.type === "encrypt" && result.encrypted) { diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index f2af66a71..ab2b2ab89 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -46,6 +46,7 @@ export default { audioPlaying: null, // 路由记录 + routeName: null, routeHistorys: [], routeHistoryLast: {},