From 9f4ee54c8fda75c44cd8773b3f97b24a53e031ab Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 8 Jun 2021 11:51:34 +0800 Subject: [PATCH] no message --- package.json | 1 + .../js/pages/manage/components/DialogView.vue | 19 +++-------- resources/assets/js/store/mutations.js | 32 +++++++++++-------- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 32d48d63..b1542382 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "cross-env": "^7.0.2", "css-loader": "^0.28.7", "file-loader": "^2.0.0", + "internal-ip": "^6.2.0", "jquery": "^3.5.1", "laravel-mix": "^6.0.6", "lodash": "^4.17.19", diff --git a/resources/assets/js/pages/manage/components/DialogView.vue b/resources/assets/js/pages/manage/components/DialogView.vue index 59236209..b7e19222 100644 --- a/resources/assets/js/pages/manage/components/DialogView.vue +++ b/resources/assets/js/pages/manage/components/DialogView.vue @@ -79,7 +79,7 @@ export default { }, mounted() { - this.parsingRead() + this.msgRead() }, computed: { @@ -94,13 +94,11 @@ export default { } }, - watch: { - msgData() { - this.parsingRead() - } - }, - methods: { + msgRead() { + this.$store.commit('wsMsgRead', this.msgData); + }, + popperShow() { $A.apiAjax({ url: 'dialog/msg/readlist', @@ -115,13 +113,6 @@ export default { }); }, - parsingRead() { - const {userid, r, id} = this.msgData; - if (userid == this.userId) return; - if ($A.isJson(r) && r.read_at) return; - this.$store.commit('wsMsgRead', id); - }, - formatTime(date) { let time = Math.round(new Date(date).getTime() / 1000), string = ''; diff --git a/resources/assets/js/store/mutations.js b/resources/assets/js/store/mutations.js index ac9fc1c8..e3a81c52 100644 --- a/resources/assets/js/store/mutations.js +++ b/resources/assets/js/store/mutations.js @@ -306,12 +306,6 @@ export default { } state.dialogId = dialog_id; // - let dialog = state.dialogList.find(({id}) => id == dialog_id); - if (dialog && dialog.unread > 0) { - state.dialogMsgUnread-= dialog.unread; - dialog.unread = 0; - } - // if (state.cacheDialog[dialog_id + "::load"]) { return; } @@ -484,9 +478,6 @@ export default { if (dialog_id === state.dialogId) { let index = state.dialogMsgList.findIndex(({id}) => id === data.id); if (index === -1) { - if (state.dialogMsgList.length >= 200) { - state.dialogMsgList.splice(0, 1); - } state.dialogMsgList.push(data); } else { state.dialogMsgList.splice(index, 1, data); @@ -507,7 +498,7 @@ export default { if (mode === "add") { if (dialog) { // 新增未读数 - if (state.dialogId !== dialog_id) dialog.unread++; + if (data.userid !== state.userId) dialog.unread++; // 移动到首位 const index = state.dialogList.findIndex(({id}) => id == dialog_id); if (index > -1) { @@ -517,7 +508,7 @@ export default { } } // 新增总未读数 - if (state.dialogId !== dialog_id) state.dialogMsgUnread++; + if (data.userid !== state.userId) state.dialogMsgUnread++; } })(msgDetail, this); } @@ -559,10 +550,23 @@ export default { /** * 发送已阅消息 * @param state - * @param msgId + * @param msgData */ - wsMsgRead(state, msgId) { - state.wsReadWaitList.push(msgId); + wsMsgRead(state, msgData) { + if (msgData.userid == state.userId) return; + if (typeof msgData.r === "undefined") msgData.r = {}; + // + const {id, dialog_id, r} = msgData; + if (!r.read_at) { + r.read_at = $A.formatDate('Y-m-d H:i:s'); + let dialog = state.dialogList.find(({id}) => id == dialog_id); + if (dialog && dialog.unread > 0) { + dialog.unread-- + state.dialogMsgUnread--; + } + } + // + state.wsReadWaitList.push(id); clearTimeout(state.wsReadTimeout); state.wsReadTimeout = setTimeout(() => { this.commit('wsSend', {