From cc1278ffcb156c994d7ca546a0e7594652c28ef6 Mon Sep 17 00:00:00 2001 From: lkddi Date: Sun, 1 Mar 2026 11:42:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9AopenUserCard=20?= =?UTF-8?q?=E5=89=A5=E9=99=A4=E6=B6=88=E6=81=AF=E4=B8=AD=E7=9A=84=E8=A3=85?= =?UTF-8?q?=E9=A5=B0=E6=8B=AC=E5=8F=B7=E9=81=BF=E5=85=8D=20404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:部分自动动作/系统消息用「【username】」格式显示用户名, 双击时把「【」前缀一并传给 openUserCard,导致: GET /user/【lkddi → 404 修复:在 openUserCard 入口统一用正则清洗 【】[] 等装饰字符,再传给 fetchUser 查询。 --- resources/views/chat/partials/user-actions.blade.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/views/chat/partials/user-actions.blade.php b/resources/views/chat/partials/user-actions.blade.php index c8e1af6..6c75cd8 100644 --- a/resources/views/chat/partials/user-actions.blade.php +++ b/resources/views/chat/partials/user-actions.blade.php @@ -52,6 +52,9 @@ * 通过 Alpine.js 的 fetchUser 方法加载用户资料并显示弹窗。 */ function openUserCard(username) { + // 剥除可能从消息内容带入的装饰括号(如 【username】 → username) + username = String(username).replace(/^[\u3010\[【\s]+|[\u3011\]】\s]+$/g, '').trim(); + if (!username) return; const el = document.getElementById('user-modal-container'); if (el) { const data = Alpine.$data(el);