diff --git a/components/group-avatar.vue b/components/group-avatar.vue index 6d8ab1d..44b83a7 100644 --- a/components/group-avatar.vue +++ b/components/group-avatar.vue @@ -25,7 +25,7 @@ const props = defineProps({ } }) -const list = computed(() => props.avatarList.map(i => i || '/static/default-avatar.png')) +const list = computed(() => props.avatarList.map(i => i || '/static/default-avatar.svg')) const size = computed(() => { const val = Number.isInteger(props.size) && props.size > 0 ? props.size : 144; diff --git a/pages/home/team-mate.vue b/pages/home/team-mate.vue index 16ef2c6..3645836 100644 --- a/pages/home/team-mate.vue +++ b/pages/home/team-mate.vue @@ -13,7 +13,7 @@ - + diff --git a/pages/message/hooks/use-group-avatars.js b/pages/message/hooks/use-group-avatars.js index f2ee330..30e73a8 100644 --- a/pages/message/hooks/use-group-avatars.js +++ b/pages/message/hooks/use-group-avatars.js @@ -10,7 +10,7 @@ export default function useGroupAvatars() { const groupAvatarMap = ref({}) // { groupID: [avatarUrl1, avatarUrl2, ...] } const teamStore = useTeamStore() const patientDefaultAvatar = '/static/default-patient-avatar.png' - const teamMemberDefaultAvatar = '/static/default-avatar.png' + const teamMemberDefaultAvatar = '/static/default-avatar.svg' /** * 获取单个群聊的头像列表 @@ -28,7 +28,7 @@ export default function useGroupAvatars() { // 获取团队成员的头像和名称 const memberMap = await teamStore.getTeamMemberAvatarsAndName(teamId) - + if (!memberMap || Object.keys(memberMap).length === 0) { console.warn(`群聊 ${groupID} 的团队成员为空`) return [] @@ -38,8 +38,8 @@ export default function useGroupAvatars() { const avatarList = Object.values(memberMap) .map(member => { // 如果成员有头像且不为空,使用成员头像;否则使用团队成员默认头像 - return (member.avatar && member.avatar.trim() !== '') - ? member.avatar + return (member.avatar && member.avatar.trim() !== '') + ? member.avatar : teamMemberDefaultAvatar }) diff --git a/pages/message/hooks/use-group-chat.js b/pages/message/hooks/use-group-chat.js index 696131b..9b09377 100644 --- a/pages/message/hooks/use-group-chat.js +++ b/pages/message/hooks/use-group-chat.js @@ -47,31 +47,25 @@ export default function useGroupChat(groupID) { const getUserAvatar = (userId) => { const member = chatMember.value[userId] if (!member) { - // 如果找不到成员信息,根据是否为团队成员返回默认头像 - // 患者(userId为当前账户openid)使用 default-patient-avatar.png - // 其他情况使用 default-avatar.png - return userId === openid.value ? '/static/default-patient-avatar.png' : '/static/default-avatar.png' + return userId === openid.value ? '/static/default-patient-avatar.png' : '/static/default-avatar.svg' } - + // 如果有头像且不为空字符串,返回头像 if (member.avatar && member.avatar.trim() !== '') { return member.avatar } - - // 否则根据是否为团队成员返回默认头像 - // 患者使用 default-patient-avatar.png,团队成员使用 default-avatar.png - return member.isTeamMember ? '/static/default-avatar.png' : '/static/default-patient-avatar.png' - } + return member.isTeamMember ? '/static/default-avatar.svg' : '/static/default-patient-avatar.png' + } // 获取群聊信息和成员头像 async function getGroupInfo() { const gid = typeof groupID === 'string' ? groupID : groupID.value if (!gid) return - + try { // 1. 获取群聊基本信息 const groupResult = await api('getGroupListByGroupId', { groupId: gid }) - + if (groupResult && groupResult.success && groupResult.data) { groupInfo.value = { groupID: gid, @@ -79,14 +73,14 @@ export default function useGroupChat(groupID) { status: groupResult.data.orderStatus || 'active', teamId: groupResult.data.teamId } - + // 2. 如果有teamId,获取团队成员头像和名称 if (groupResult.data.teamId) { const memberMap = await teamStore.getTeamMemberAvatarsAndName(groupResult.data.teamId) - + // 3. 存储团队成员ID列表 teamMemberIds.value = Object.keys(memberMap) - + // 4. 构建团队成员列表(从返回的 { userId: { avatar, name } } 中提取) members.value = teamMemberIds.value.map(userId => { const memberInfo = memberMap[userId] || {} @@ -97,7 +91,7 @@ export default function useGroupChat(groupID) { isTeamMember: true } }) - + // 5. 添加患者信息(使用默认患者头像) if (groupResult.data.patient) { const pid = groupResult.data.patientId?.toString() || '' diff --git a/pages/team/friend.vue b/pages/team/friend.vue index 5681332..d7f62a8 100644 --- a/pages/team/friend.vue +++ b/pages/team/friend.vue @@ -2,7 +2,7 @@ - + {{ member.anotherName }} diff --git a/pages/team/team-detail.vue b/pages/team/team-detail.vue index b861d8c..647c9da 100644 --- a/pages/team/team-detail.vue +++ b/pages/team/team-detail.vue @@ -25,7 +25,7 @@ - + {{ i.anotherName }} @@ -50,7 +50,7 @@ - + {{ i.anotherName }} diff --git a/utils/conversation-merger.js b/utils/conversation-merger.js index a4ae454..3149f6d 100644 --- a/utils/conversation-merger.js +++ b/utils/conversation-merger.js @@ -144,7 +144,7 @@ function mergeConversationData(conversation, groupDetailsMap) { name: formatConversationName(groupDetail), // 更新头像(优先使用已有头像,避免闪动) - avatar: conversation.avatar || groupDetail.patient?.avatar || '/static/default-avatar.png', + avatar: conversation.avatar || groupDetail.patient?.avatar || '/static/default-avatar.svg', // 【修复】保留未读消息数(确保不被覆盖) unreadCount: conversation.unreadCount || 0