From cb9cd49627b65a4c0e137e08063271a8cefe1826 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 23 七月 2026 17:48:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/im/home/components/group/group-member.vue | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/src/views/im/home/components/group/group-member.vue b/src/views/im/home/components/group/group-member.vue
new file mode 100644
index 0000000..2ae97a2
--- /dev/null
+++ b/src/views/im/home/components/group/group-member.vue
@@ -0,0 +1,64 @@
+<script lang="ts" setup>
+import { computed } from 'vue'
+
+import { ImFriendAddSource } from '../../../utils/constants'
+import { UserAvatar } from '../user'
+
+defineOptions({ name: 'ImGroupMember' })
+
+const props = withDefaults(
+ defineProps<{
+ active?: boolean // 閫変腑鎬侊紙@鍊欓�夐敭鐩橀珮浜瓑锛�
+ clickable?: boolean // 澶村儚鐐瑰嚮鏄惁寮� UserInfoCard锛汙鍊欓�夊満鏅�氬父绂佺敤锛堥伩鍏嶅祵濂椾氦浜掞級
+ groupName?: string // 缇ゅ悕锛氬姞濂藉弸鏃舵嫾銆屾垜鏄� 'XX 缇�' 鐨� YY銆嶈瘽鏈紝钀藉簱 add_source=GROUP
+ height?: number // 琛岄珮锛坧x锛夛紝褰卞搷澶村儚澶у皬
+ member: GroupMemberLite
+ }>(),
+ {
+ height: 50,
+ active: false,
+ clickable: false,
+ groupName: ''
+ }
+)
+
+/** 缇ゆ垚鍛樼粨鏋勶紙璺ㄥ澶勪娇鐢紝鏀捐繖閲屽仛绐勬帴鍙o紱鐙珛浜� types/index.ts锛� */
+export interface GroupMemberLite {
+ userId: number // 鐢ㄦ埛缂栧彿锛涚壒娈婂�艰 IM_AT_ALL_USER_ID锛園 鍏ㄤ綋鎴愬憳锛�
+ nickname: string // 鐪熷疄鏄电О锛氭案杩滄槸鐢ㄦ埛鐨� nickname锛屼笓缁� UserAvatar 鑹插崱鐢紝淇濊瘉鍚屼竴涓汉鑹插崱棣栧瓧姣嶅湪鎵�鏈夌晫闈竴鑷�
+ showName: string // 灞曠ず鏄电О锛氬ソ鍙嬪娉� > 鐢ㄦ埛缇ゅ娉紙displayUserName锛� > 鐪熷疄鏄电О锛坣ickname锛夛紝缁�"鏄剧ず缁欑敤鎴风湅"鐨勪綅缃敤锛堣鍐呮枃瀛椼�丂鍊欓�夋爣绛剧瓑锛�
+ avatar?: string
+ status?: number
+ role?: number // 鎴愬憳瑙掕壊锛屼粎鍦ㄧ兢淇℃伅鎶藉眽绛夐渶瑕佸睍绀鸿鑹叉爣绛剧殑鍦烘櫙閫忎紶锛汙鍊欓�� / 宸茶鍒楄〃绛夊満鏅彲涓嶄紶
+}
+
+const avatarSize = computed(() => Math.ceil(props.height * 0.75))
+</script>
+
+<template>
+ <!--
+ 缇ゆ垚鍛樺崟琛�
+ 璺ㄥ瓙鍩熷鐢細@鍊欓�� (MentionPicker) / 宸茶鍒楄〃 (MessageReadStatus) / 缇ゆ垚鍛樺鏍� (ConversationGroupSide)
+ -->
+ <div
+ class="relative flex items-center px-[5px] box-border whitespace-nowrap"
+ :class="{ 'bg-[#e1eaf7] dark:bg-[var(--ant-color-primary-bg)]': active }"
+ :style="{ height: `${height }px` }"
+ >
+ <UserAvatar
+ :size="avatarSize"
+ :name="member.nickname"
+ :url="member.avatar"
+ :clickable="clickable"
+ :id="member.userId"
+ :add-source="ImFriendAddSource.GROUP"
+ :add-source-extra="groupName"
+ />
+ <div
+ class="flex-1 h-full pl-2.5 overflow-hidden text-sm text-left truncate text-[var(--ant-color-text)]"
+ :style="{ lineHeight: `${height }px` }"
+ >
+ {{ member.showName }}
+ </div>
+ </div>
+</template>
--
Gitblit v1.9.3