医生默认头像更换

This commit is contained in:
wangdongbo 2026-02-10 16:57:05 +08:00
parent 17aefb966e
commit 1e06cc5f2e
7 changed files with 20 additions and 26 deletions

View File

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

View File

@ -13,7 +13,7 @@
<view v-for="i in teamates" :key="i.userid"
class="member-card flex flex-shrink-0 min-w-120 mr-15 p-15"
@click="toHomePage(i)">
<image class="flex-shrink-0 avatar mr-10" :src="i.avatar || '/static/default-avatar.png'" />
<image class="flex-shrink-0 avatar mr-10" :src="i.avatar || '/static/default-avatar.svg'" />
<view class="flex-grow flex flex-col justify-between">
<view>
<view class="member-name leading-normal h-24 text-base font-semibold text-dark whitespace-nowrap">

View File

@ -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
})

View File

@ -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() || ''

View File

@ -2,7 +2,7 @@
<view v-if="member" class="flex flex-col h-full items-center justify-center">
<view class="business-card">
<view class="flex">
<image class="mr-10 avatar" :src="member.avatar || '/static/default-avatar.png'"></image>
<image class="mr-10 avatar" :src="member.avatar || '/static/default-avatar.svg'"></image>
<view class="w-0 flex-grow leading-normal">
<view class="flex items-center">
<view class="mr-5 text-lg font-semibold text-dark">{{ member.anotherName }}</view>

View File

@ -25,7 +25,7 @@
</view>
<view v-for="i in teammate.leaders" :key="i._id" class="mt-12 flex p-10 border-primary rounded-sm"
@click="toHomePage(i.userid)">
<image class="flex-shrink-0 mr-10 avatar" :src="i.avatar || '/static/default-avatar.png'"></image>
<image class="flex-shrink-0 mr-10 avatar" :src="i.avatar || '/static/default-avatar.svg'"></image>
<view class="w-0 flex-grow leading-normal">
<view class="flex items-center justify-between">
<view class="flex-shrink-0 mr-5 view-lg text-dark font-semibold">{{ i.anotherName }}</view>
@ -50,7 +50,7 @@
</view>
<view v-for="i in teammate.members" :key="i._id" class="mt-12 flex p-10 border-primary rounded-sm"
@click="toHomePage(i.userid)">
<image class="flex-shrink-0 mr-10 avatar" :src="i.avatar || '/static/default-avatar.png'"></image>
<image class="flex-shrink-0 mr-10 avatar" :src="i.avatar || '/static/default-avatar.svg'"></image>
<view class="w-0 flex-grow leading-normal">
<view class="flex items-center justify-between">
<view class="flex-shrink-0 mr-5 view-lg text-dark font-semibold">{{ i.anotherName }}</view>

View File

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