From 2a557482964b45d1d4cc6984a1a86a33c9ea7d3f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 5 May 2026 00:33:06 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(im)=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E5=88=A0=E9=99=A4=E6=97=B6=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=98=AF=E5=90=A6=E5=88=A0=E9=99=A4=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E8=81=8A=E5=A4=A9=E7=9A=84=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/im/friend/index.ts | 7 +- .../components/friend/FriendAddDialog.vue | 6 +- .../im/home/components/user/UserInfo.vue | 37 +++++++-- .../components/message/MessagePanel.vue | 78 ++++++++++++++++++ src/views/im/home/store/friendStore.ts | 82 +++++++++---------- 5 files changed, 157 insertions(+), 53 deletions(-) diff --git a/src/api/im/friend/index.ts b/src/api/im/friend/index.ts index 229e37578..8f0d4613e 100644 --- a/src/api/im/friend/index.ts +++ b/src/api/im/friend/index.ts @@ -38,8 +38,11 @@ export const getFriend = (friendUserId: number | string) => { } // 删除好友(单向软删除) -export const deleteFriend = (friendUserId: number | string) => { - return request.delete({ url: '/im/friend/delete', params: { friendUserId } }) +export const deleteFriend = (friendUserId: number | string, clear: boolean) => { + return request.delete({ + url: '/im/friend/delete', + params: { friendUserId, clear } + }) } // 更新好友信息(备注 / 免打扰 / 联系人置顶) diff --git a/src/views/im/home/components/friend/FriendAddDialog.vue b/src/views/im/home/components/friend/FriendAddDialog.vue index 7033db9c1..b837a6db1 100644 --- a/src/views/im/home/components/friend/FriendAddDialog.vue +++ b/src/views/im/home/components/friend/FriendAddDialog.vue @@ -148,7 +148,7 @@ const props = withDefaults( presetUser?: UserVO | null /** 添加来源;参见 ImFriendAddSourceEnum */ addSource?: number - /** 来源附带信息:addSource=2(群聊)时传群名,话术拼为「我是 XX 群的 YY」 */ + /** 来源附带信息:addSource=ImFriendAddSource.GROUP 时传群名,话术拼为「我是 XX 群的 YY」 */ addSourceExtra?: string }>(), { @@ -175,7 +175,9 @@ const message = useMessage() const currentUserId = computed(() => getCurrentUserId()) /** 搜索结果过滤掉自己;用 v-if 而非 v-show,避免 DOM 占位 + 头像无效请求 */ -const visibleUsers = computed(() => users.value.filter((u) => u.id !== currentUserId.value)) +const visibleUsers = computed(() => + users.value.filter((user) => user.id !== currentUserId.value) +) const keyword = ref('') const users = ref([]) const searched = ref(false) diff --git a/src/views/im/home/components/user/UserInfo.vue b/src/views/im/home/components/user/UserInfo.vue index 94ecb3b36..f4b11f24a 100644 --- a/src/views/im/home/components/user/UserInfo.vue +++ b/src/views/im/home/components/user/UserInfo.vue @@ -171,8 +171,8 @@