From c9bcf6ac83c40c029290a05b2d8d229f7ae8261f Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 6 Jun 2021 16:15:45 +0800 Subject: [PATCH] no message --- app/Models/WebSocket.php | 5 +++- app/Services/WebSocketService.php | 3 +-- resources/assets/js/components/UserAvatar.vue | 2 +- .../assets/js/pages/manage/messenger.vue | 4 +++ resources/assets/js/store/mutations.js | 6 ++++- resources/assets/sass/main.scss | 25 ++++++++++++++++++- 6 files changed, 39 insertions(+), 6 deletions(-) diff --git a/app/Models/WebSocket.php b/app/Models/WebSocket.php index 268fa1f0..8885e66c 100644 --- a/app/Models/WebSocket.php +++ b/app/Models/WebSocket.php @@ -4,8 +4,10 @@ namespace App\Models; /** - * App\Models\WebSocket + * Class WebSocket * + * @package App\Models + * @property int $id * @property string $key * @property string|null $fd * @property int|null $userid @@ -16,6 +18,7 @@ namespace App\Models; * @method static \Illuminate\Database\Eloquent\Builder|WebSocket query() * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereFd($value) + * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereKey($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocket whereUserid($value) diff --git a/app/Services/WebSocketService.php b/app/Services/WebSocketService.php index abc3c2f0..330f87a0 100644 --- a/app/Services/WebSocketService.php +++ b/app/Services/WebSocketService.php @@ -151,9 +151,8 @@ class WebSocketService implements WebSocketHandlerInterface */ public function onClose(Server $server, $fd, $reactorId) { + Task::deliver(new LineTask($this->getUserid($fd), false)); // 通知离线 $this->deleteUser($fd); - // 通知离线 - Task::deliver(new LineTask($this->getUserid($fd), false)); } /** ****************************************************************************** */ diff --git a/resources/assets/js/components/UserAvatar.vue b/resources/assets/js/components/UserAvatar.vue index dba73d21..ad05a9e8 100755 --- a/resources/assets/js/components/UserAvatar.vue +++ b/resources/assets/js/components/UserAvatar.vue @@ -78,7 +78,7 @@ }, userOnline(data) { - if (this.user && data[this.user.userid]) { + if (this.user && typeof data[this.user.userid] !== "undefined") { this.$set(this.user, 'online', data[this.user.userid]); } } diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue index 699da62f..a60d9501 100644 --- a/resources/assets/js/pages/manage/messenger.vue +++ b/resources/assets/js/pages/manage/messenger.vue @@ -37,6 +37,10 @@
+
+
+
{{$L('选择一个会话开始聊天')}}
+
diff --git a/resources/assets/js/store/mutations.js b/resources/assets/js/store/mutations.js index 9a370349..a0dd2fd1 100644 --- a/resources/assets/js/store/mutations.js +++ b/resources/assets/js/store/mutations.js @@ -69,7 +69,7 @@ export default { /** * 更新会员在线 * @param state - * @param info + * @param info {userid,online} */ setUserOnlineStatus(state, info) { const {userid, online} = info; @@ -353,6 +353,10 @@ export default { delete state.wsCall[msgId]; break + case "line": + this.commit('setUserOnlineStatus', msgDetail.data); + break + default: msgId && this.commit('wsSend', {type: 'receipt', msgId}); state.wsMsg = msgDetail; diff --git a/resources/assets/sass/main.scss b/resources/assets/sass/main.scss index dc268939..1f2c137f 100755 --- a/resources/assets/sass/main.scss +++ b/resources/assets/sass/main.scss @@ -1160,8 +1160,31 @@ body { width: 0; height: 100%; display: flex; - .dialog-wrapper { + .dialog-wrapper, + .dialog-no { flex: 1; } + .dialog-no { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + .dialog-no-icon { + background-color: #f4f5f7; + padding: 20px; + border-radius: 50%; + .ivu-icon { + color: #d1d8dd; + font-size: 46px; + } + } + .dialog-no-text { + margin-top: 16px; + color: #bec6cc; + background-color: #f4f5f7; + padding: 4px 15px; + border-radius: 14px; + } + } } }