From 27cd042df9aca0383a49f3514bc21958dd890912 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 六月 2026 15:42:23 +0800
Subject: [PATCH] 银川 1.联调产品维护页面 2.添加IM即时通讯模块

---
 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