From 19a1ae9bec8898018594ed95eb86da4b7761aedb Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 27 Oct 2024 05:31:04 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/WebSocketDialogMsg.php | 12 ++++++------ resources/assets/js/functions/web.js | 5 +++++ resources/assets/js/pages/manage.vue | 15 +++------------ 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/app/Models/WebSocketDialogMsg.php b/app/Models/WebSocketDialogMsg.php index 7de81034a..8cae5439e 100644 --- a/app/Models/WebSocketDialogMsg.php +++ b/app/Models/WebSocketDialogMsg.php @@ -679,18 +679,14 @@ class WebSocketDialogMsg extends AbstractModel } /** - * 返回引用消息(如果是文本消息则截取) - * @param int $strlen + * 返回引用消息(如果是文本只取预览) * @return array|mixed */ - public function quoteTextMsg($strlen = 30) + public function quoteTextMsg() { $msg = $this->msg; if ($this->type === 'text') { $msg['text'] = $this->previewTextMsg($msg['text']); - if (mb_strlen($msg['text']) > $strlen) { - $msg['text'] = mb_substr($msg['text'], 0, $strlen - 3) . "..."; - } } return $msg; } @@ -710,6 +706,10 @@ class WebSocketDialogMsg extends AbstractModel if (!$preserveHtml) { $text = strip_tags($text); $text = str_replace([" ", "&", "<", ">"], [" ", "&", "<", ">"], $text); + $text = preg_replace("/\s+/", " ", $text); + if (mb_strlen($text) > 30) { + $text = mb_substr($text, 0, 30) . "..."; + } } return $text; } diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index 2b30efc6e..8f2a88594 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -270,10 +270,15 @@ import {MarkdownPreview} from "../store/markdown"; .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") + .replace(/\s+/g, " ") if (imgClassName) { text = text.replace(/\[image:(.*?)\]/g, ``) text = text.replace(/\{\{RemoteURL\}\}/g, this.apiUrl('../')) } + const tmpText = text.substring(0, 30) + if (tmpText.length < text.length) { + text = tmpText + '...' + } return text }, diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 68487fb9b..571aa0a5d 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -1074,22 +1074,13 @@ export default { return; // 窗口激活且最后打开的会话是通知的会话时不通知 } // - const {id, dialog_id, dialog_type, type, msg, userid} = data; + const {id, dialog_id, dialog_type, userid} = data; if (userid == this.userId) { return; // 自己的消息不通知 } - let body; - switch (type) { - case 'text': - body = $A.getMsgTextPreview(msg.type === 'md' ? MarkdownPreview(msg.text) : msg.text) - break; - case 'file': - body = '[' + this.$L(msg.type == 'img' ? '图片信息' : '文件信息') + ']' - break; - default: - return; - } + const body = $A.getMsgSimpleDesc(data); this.__notificationId = id; + // const notificationFuncA = (title) => { if (dialog_type === 'group') { let tempUser = this.cacheUserBasic.find(item => item.userid == userid);