perf: 未读消息优化

This commit is contained in:
weifashi 2023-12-08 22:09:47 +08:00
parent 1a62a47935
commit 85d88b6800
3 changed files with 11 additions and 4 deletions

View File

@ -616,13 +616,14 @@ class DialogController extends AbstractController
$dialogUser->updated_at = Carbon::now(); $dialogUser->updated_at = Carbon::now();
$dialogUser->save(); $dialogUser->save();
// //
$dialogUser->webSocketDialog->generateUnread($user->userid); $dialogUser->webSocketDialog->generateUnread($user->userid, true);
$data[] = [ $data[] = [
'id' => $dialogUser->webSocketDialog->id, 'id' => $dialogUser->webSocketDialog->id,
'unread' => $dialogUser->webSocketDialog->unread, 'unread' => $dialogUser->webSocketDialog->unread,
'mention' => $dialogUser->webSocketDialog->mention, 'mention' => $dialogUser->webSocketDialog->mention,
'position_msgs' => $dialogUser->webSocketDialog->position_msgs,
'user_at' => Carbon::parse($dialogUser->updated_at)->toDateTimeString('millisecond'), 'user_at' => Carbon::parse($dialogUser->updated_at)->toDateTimeString('millisecond'),
'user_ms' => Carbon::parse($dialogUser->updated_at)->valueOf() 'user_ms' => Carbon::parse($dialogUser->updated_at)->valueOf(),
]; ];
} }
return Base::retSuccess('success', $data); return Base::retSuccess('success', $data);

View File

@ -136,10 +136,10 @@
</div> </div>
<!--跳转提示--> <!--跳转提示-->
<div v-if="positionMsg" class="dialog-position" :class="{'down': tagShow}"> <div v-if="positionMsg" class="dialog-position" :class="{'down': true}">
<div class="position-label" @click="onPositionMark"> <div class="position-label" @click="onPositionMark">
<Icon v-if="positionLoad > 0" type="ios-loading" class="icon-loading"></Icon> <Icon v-if="positionLoad > 0" type="ios-loading" class="icon-loading"></Icon>
<i v-else class="taskfont">&#xe624;</i> <i v-else class="taskfont" :class="{'below': positionLoadMark}">&#xe624;</i>
{{positionMsg.label}} {{positionMsg.label}}
</div> </div>
</div> </div>
@ -694,6 +694,7 @@ export default {
scrollTmp: 0, scrollTmp: 0,
positionLoad: 0, positionLoad: 0,
positionLoadMark: false,
approveDetails:{id: 0}, approveDetails:{id: 0},
approveDetailsShow: false, approveDetailsShow: false,
@ -1036,6 +1037,7 @@ export default {
watch: { watch: {
dialogId: { dialogId: {
handler(dialog_id, old_id) { handler(dialog_id, old_id) {
this.positionLoadMark = false;
this.mountedNow = Date.now(); this.mountedNow = Date.now();
if (dialog_id) { if (dialog_id) {
this.msgNew = 0 this.msgNew = 0
@ -2996,6 +2998,7 @@ export default {
return; return;
} }
// //
this.positionLoadMark = true;
this.positionLoad++ this.positionLoad++
const {msg_id} = this.positionMsg; const {msg_id} = this.positionMsg;
this.onPositionId(msg_id).finally(_ => { this.onPositionId(msg_id).finally(_ => {

View File

@ -1392,6 +1392,9 @@
height: 14px; height: 14px;
font-size: 14px; font-size: 14px;
line-height: 14px; line-height: 14px;
&.below{
transform: rotate(-180deg);
}
} }
} }
} }