From 9a9ff64576f419b73f0755b6ae197ef45a087ac4 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 10 Jun 2022 08:58:33 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=A4=B4=E5=83=8F=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=B7=B2=E7=A6=BB=E8=81=8C=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/UsersController.php | 2 +- app/Models/User.php | 2 +- resources/assets/js/components/UserAvatar.vue | 15 +++++++++-- .../assets/sass/components/user-avatar.scss | 26 +++++++++++++++++++ 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index f7df20053..44e5e6891 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -361,7 +361,7 @@ class UsersController extends AbstractController */ public function search() { - $builder = User::select(['userid', 'email', 'nickname', 'profession', 'userimg', 'az']); + $builder = User::select(['userid', 'email', 'nickname', 'profession', 'userimg', 'az', 'line_at', 'disable_at']); // $keys = Request::input('keys'); $sorts = Request::input('sorts'); diff --git a/app/Models/User.php b/app/Models/User.php index ee351dda2..703a99e74 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -419,7 +419,7 @@ class User extends AbstractModel if (isset($_A["__static_userid2basic_" . $userid])) { return $_A["__static_userid2basic_" . $userid]; } - $fields = ['userid', 'email', 'nickname', 'profession', 'userimg', 'line_at']; + $fields = ['userid', 'email', 'nickname', 'profession', 'userimg', 'az', 'line_at', 'disable_at']; $userInfo = self::whereUserid($userid)->select($fields)->first(); if ($userInfo) { $userInfo->online = $userInfo->getOnlineStatus(); diff --git a/resources/assets/js/components/UserAvatar.vue b/resources/assets/js/components/UserAvatar.vue index 039dea336..cae8875c5 100755 --- a/resources/assets/js/components/UserAvatar.vue +++ b/resources/assets/js/components/UserAvatar.vue @@ -14,7 +14,7 @@
-
+
{{nickname}} @@ -23,7 +23,10 @@ {{nickname}}
-
{{user.nickname}}
+
@@ -109,6 +112,14 @@ computed: { ...mapState(['userInfo', 'userOnline', 'cacheUserBasic']), + boxClass() { + return { + 'avatar-box': true, + 'online': this.userId === this.userid || this.user.online, + 'disable': this.user.disable_at + } + }, + boxStyle() { const style = {}; const {borderWitdh, borderColor} = this diff --git a/resources/assets/sass/components/user-avatar.scss b/resources/assets/sass/components/user-avatar.scss index d43a30993..f7a7bddc7 100755 --- a/resources/assets/sass/components/user-avatar.scss +++ b/resources/assets/sass/components/user-avatar.scss @@ -41,6 +41,19 @@ background-color: $primary-color; } } + &.disable { + &:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpb25pY29uIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHRpdGxlPkJhbjwvdGl0bGU+PGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9IiNFRDQwMTQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI0OCIgY3g9IjI1NiIgY3k9IjI1NiIgcj0iMjAwIi8+PHBhdGggc3Ryb2tlPSIjRUQ0MDE0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iNDgiIGQ9Ik0xMTQuNTggMTE0LjU4bDI4Mi44NCAyODIuODQiLz48L3N2Zz4="); + background-color: rgba(237, 64, 20, 0.2); + border-radius: 50%; + } + } } .avatar-name { padding-left: 6px; @@ -48,6 +61,19 @@ text-overflow: ellipsis; white-space: nowrap; } + .avatar-disable { + margin-left: 2px; + white-space: nowrap; + font-size: 12px; + height: 20px; + line-height: 20px; + padding: 0 6px; + border-radius: 3px; + transform: scale(0.9); + transform-origin: right center; + color: #ffffff; + background-color: #ED4014; + } } } .common-avatar-transfer {