From 027db7c0ece6d62833867e30e16165057c9b7b53 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 2 Mar 2025 19:00:09 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=B7=BB=E5=8A=A0=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/DialogController.php | 38 ++ resources/assets/js/components/SearchBox.vue | 347 ++++++++++++++++++ resources/assets/js/pages/manage.vue | 5 + .../assets/js/pages/manage/dashboard.vue | 12 +- resources/assets/sass/components/_.scss | 1 + .../assets/sass/components/search-box.scss | 255 +++++++++++++ resources/assets/sass/dark.scss | 22 ++ .../assets/sass/pages/page-dashboard.scss | 41 ++- 8 files changed, 716 insertions(+), 5 deletions(-) create mode 100755 resources/assets/js/components/SearchBox.vue create mode 100755 resources/assets/sass/components/search-box.scss diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 507592480..942fe6b01 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -712,6 +712,44 @@ class DialogController extends AbstractController return Base::retSuccess('success', compact('data')); } + /** + * @api {get} api/dialog/msg/esearch 14. 搜索消息 + * + * @apiDescription 需要token身份 + * @apiVersion 1.0.0 + * @apiGroup dialog + * @apiName msg__esearch + * + * @apiParam {String} key 搜索关键词 + * @apiParam {Number} [pagesize] 每页显示数量,默认:20,最大:50 + * + * @apiSuccess {Number} ret 返回状态码(1正确、0错误) + * @apiSuccess {String} msg 返回信息(错误描述) + * @apiSuccess {Object} data 返回数据 + */ + public function msg__esearch() + { + $user = User::auth(); + // + $key = trim(Request::input('key')); + $list = []; + // + $es = new ElasticSearch(ElasticSearch::DUM); + $searchResults = $es->searchDialogsByUserAndKeyword($user->userid, $key, Base::getPaginate(50, 20)); + if ($searchResults) { + foreach ($searchResults as $item) { + if ($dialog = WebSocketDialog::find($item['id'])) { + $dialog = array_merge($dialog->toArray(), $item); + $list[] = WebSocketDialog::synthesizeData($dialog, $user->userid); + } + } + } + // + return Base::retSuccess('success', [ + 'data' => $list, + ]); + } + /** * @api {get} api/dialog/msg/one 15. 获取单条消息 * diff --git a/resources/assets/js/components/SearchBox.vue b/resources/assets/js/components/SearchBox.vue new file mode 100755 index 000000000..d02bda9dc --- /dev/null +++ b/resources/assets/js/components/SearchBox.vue @@ -0,0 +1,347 @@ + + + diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 1f8c26f68..ea7c50e9d 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -286,6 +286,9 @@ + + + {{warningMsg}}
-
{{dashboardHello}}
+
+

{{dashboardHello}}

+ +
{{$L('服务器时间')}}: {{$A.daytz().format('YYYY-MM-DD HH:mm:ss')}} @@ -101,6 +106,7 @@