no message
This commit is contained in:
parent
f69e374b39
commit
3c405f2f55
@ -23,6 +23,14 @@ export default function useGroupChat(groupID) {
|
||||
avatar: member.avatar,
|
||||
isTeamMember: member.isTeamMember // 标记是否为团队成员
|
||||
}
|
||||
// 如果成员有 miniAppId(患者的聊天 userID),也添加一个映射(用于消息的 from 字段)
|
||||
if (member.miniAppId) {
|
||||
res[member.miniAppId] = {
|
||||
name: member.name,
|
||||
avatar: member.avatar,
|
||||
isTeamMember: member.isTeamMember
|
||||
}
|
||||
}
|
||||
})
|
||||
return res
|
||||
})
|
||||
@ -67,20 +75,23 @@ export default function useGroupChat(groupID) {
|
||||
teamId: groupResult.data.teamId
|
||||
}
|
||||
|
||||
// 2. 如果有teamId,获取团队成员头像
|
||||
// 2. 如果有teamId,获取团队成员头像和名称
|
||||
if (groupResult.data.teamId) {
|
||||
const avatarMap = await teamStore.getTeamMemberAvatars(groupResult.data.teamId)
|
||||
const memberMap = await teamStore.getTeamMemberAvatarsAndName(groupResult.data.teamId)
|
||||
|
||||
// 3. 存储团队成员ID列表
|
||||
teamMemberIds.value = Object.keys(avatarMap)
|
||||
teamMemberIds.value = Object.keys(memberMap)
|
||||
|
||||
// 4. 构建团队成员列表
|
||||
members.value = teamMemberIds.value.map(userId => ({
|
||||
// 4. 构建团队成员列表(从返回的 { userId: { avatar, name } } 中提取)
|
||||
members.value = teamMemberIds.value.map(userId => {
|
||||
const memberInfo = memberMap[userId] || {}
|
||||
return {
|
||||
id: userId,
|
||||
name: userId, // 这里可以从其他地方获取真实姓名
|
||||
avatar: avatarMap[userId] || '',
|
||||
name: memberInfo.name || userId, // 使用返回的 name,如果没有则用 userId
|
||||
avatar: memberInfo.avatar || '', // 使用返回的 avatar
|
||||
isTeamMember: true
|
||||
}))
|
||||
}
|
||||
})
|
||||
|
||||
// 5. 添加患者信息(使用默认患者头像)
|
||||
if (groupResult.data.patient) {
|
||||
@ -90,7 +101,8 @@ export default function useGroupChat(groupID) {
|
||||
id: pid,
|
||||
name: groupResult.data.patient.name || '患者',
|
||||
avatar: '', // 患者不设置头像,使用默认
|
||||
isTeamMember: false
|
||||
isTeamMember: false,
|
||||
miniAppId: groupResult.data.patient.miniAppId || '' // 患者的聊天 userID
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
55
store/team.js
Normal file
55
store/team.js
Normal file
@ -0,0 +1,55 @@
|
||||
import { computed, ref } from "vue";
|
||||
import { defineStore, storeToRefs } from "pinia";
|
||||
import api from '@/utils/api';
|
||||
import { toast } from '@/utils/widget';
|
||||
import useAccountStore from "./account";
|
||||
|
||||
|
||||
export default defineStore("teamStore", () => {
|
||||
const { account, doctorInfo } = storeToRefs(useAccountStore());
|
||||
const teams = ref([]);
|
||||
|
||||
const chargeTeams = computed(() => {
|
||||
const userid = doctorInfo.value?.userid;
|
||||
return teams.value.filter(team => {
|
||||
const memberLeaderList = Array.isArray(team.memberLeaderList) ? team.memberLeaderList : [];
|
||||
return memberLeaderList.includes(userid);
|
||||
});
|
||||
})
|
||||
|
||||
async function getTeam(teamId) {
|
||||
if (!teamId || !account.value?.corpId) return;
|
||||
const res = await api('getTeamData', { teamId, corpId: account.value.corpId });
|
||||
if (res && res.data) {
|
||||
return res.data;
|
||||
} else {
|
||||
toast(res?.message || '获取团队信息失败')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
async function getTeams() {
|
||||
const corpId = account.value?.corpId;
|
||||
const mateId = doctorInfo.value?.userid;
|
||||
if (!corpId || !mateId) return;
|
||||
const res = await api('getJoinedTeams', { corpId, mateId });
|
||||
teams.value = res && Array.isArray(res.data) ? res.data : [];
|
||||
}
|
||||
|
||||
// 获取团队成员头像和名称映射
|
||||
async function getTeamMemberAvatarsAndName(teamId) {
|
||||
if (!teamId || !account.value?.corpId) return {};
|
||||
const res = await api('getTeamMemberAvatarsAndName', {
|
||||
teamId,
|
||||
corpId: account.value.corpId
|
||||
});
|
||||
if (res && res.success && res.data) {
|
||||
return res.data;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
return { teams, chargeTeams, getTeam, getTeams, getTeamMemberAvatarsAndName }
|
||||
})
|
||||
@ -10,7 +10,7 @@ const urlsConfig = {
|
||||
getTeamHealthTemplate: 'getTeamHealthTemplate',
|
||||
getTeamHealthTemps: "getTeamHealthTemps",
|
||||
getCorpMemberJob: "getCorpMemberJob",
|
||||
getTeamMemberAvatars: "getTeamMemberAvatars"
|
||||
getTeamMemberAvatarsAndName: "getTeamMemberAvatarsAndName"
|
||||
},
|
||||
|
||||
knowledgeBase: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user