no message
This commit is contained in:
parent
f69e374b39
commit
3c405f2f55
@ -23,6 +23,14 @@ export default function useGroupChat(groupID) {
|
|||||||
avatar: member.avatar,
|
avatar: member.avatar,
|
||||||
isTeamMember: member.isTeamMember // 标记是否为团队成员
|
isTeamMember: member.isTeamMember // 标记是否为团队成员
|
||||||
}
|
}
|
||||||
|
// 如果成员有 miniAppId(患者的聊天 userID),也添加一个映射(用于消息的 from 字段)
|
||||||
|
if (member.miniAppId) {
|
||||||
|
res[member.miniAppId] = {
|
||||||
|
name: member.name,
|
||||||
|
avatar: member.avatar,
|
||||||
|
isTeamMember: member.isTeamMember
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
@ -67,20 +75,23 @@ export default function useGroupChat(groupID) {
|
|||||||
teamId: groupResult.data.teamId
|
teamId: groupResult.data.teamId
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 如果有teamId,获取团队成员头像
|
// 2. 如果有teamId,获取团队成员头像和名称
|
||||||
if (groupResult.data.teamId) {
|
if (groupResult.data.teamId) {
|
||||||
const avatarMap = await teamStore.getTeamMemberAvatars(groupResult.data.teamId)
|
const memberMap = await teamStore.getTeamMemberAvatarsAndName(groupResult.data.teamId)
|
||||||
|
|
||||||
// 3. 存储团队成员ID列表
|
// 3. 存储团队成员ID列表
|
||||||
teamMemberIds.value = Object.keys(avatarMap)
|
teamMemberIds.value = Object.keys(memberMap)
|
||||||
|
|
||||||
// 4. 构建团队成员列表
|
// 4. 构建团队成员列表(从返回的 { userId: { avatar, name } } 中提取)
|
||||||
members.value = teamMemberIds.value.map(userId => ({
|
members.value = teamMemberIds.value.map(userId => {
|
||||||
id: userId,
|
const memberInfo = memberMap[userId] || {}
|
||||||
name: userId, // 这里可以从其他地方获取真实姓名
|
return {
|
||||||
avatar: avatarMap[userId] || '',
|
id: userId,
|
||||||
isTeamMember: true
|
name: memberInfo.name || userId, // 使用返回的 name,如果没有则用 userId
|
||||||
}))
|
avatar: memberInfo.avatar || '', // 使用返回的 avatar
|
||||||
|
isTeamMember: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// 5. 添加患者信息(使用默认患者头像)
|
// 5. 添加患者信息(使用默认患者头像)
|
||||||
if (groupResult.data.patient) {
|
if (groupResult.data.patient) {
|
||||||
@ -90,7 +101,8 @@ export default function useGroupChat(groupID) {
|
|||||||
id: pid,
|
id: pid,
|
||||||
name: groupResult.data.patient.name || '患者',
|
name: groupResult.data.patient.name || '患者',
|
||||||
avatar: '', // 患者不设置头像,使用默认
|
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',
|
getTeamHealthTemplate: 'getTeamHealthTemplate',
|
||||||
getTeamHealthTemps: "getTeamHealthTemps",
|
getTeamHealthTemps: "getTeamHealthTemps",
|
||||||
getCorpMemberJob: "getCorpMemberJob",
|
getCorpMemberJob: "getCorpMemberJob",
|
||||||
getTeamMemberAvatars: "getTeamMemberAvatars"
|
getTeamMemberAvatarsAndName: "getTeamMemberAvatarsAndName"
|
||||||
},
|
},
|
||||||
|
|
||||||
knowledgeBase: {
|
knowledgeBase: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user