Merge commit '9b2e8e9b1ed7f9e253afba065f353929748e39f5' into dev-wdb

This commit is contained in:
wangdongbo 2026-02-06 09:52:26 +08:00
commit ea51cee22a
5 changed files with 67 additions and 9 deletions

View File

@ -123,8 +123,24 @@ const pageParams = ref({
groupId: "",
patientId: "",
corpId: "",
teamId: "",
});
const ensureTeamId = async () => {
if (pageParams.value.teamId) return pageParams.value.teamId;
if (!pageParams.value.groupId) return "";
try {
const res = await api("getGroupListByGroupId", { groupId: pageParams.value.groupId }, false);
const team = res?.data?.team || {};
const resolved = res?.data?.teamId || team.teamId || team._id || "";
if (resolved) pageParams.value.teamId = resolved;
return pageParams.value.teamId;
} catch (err) {
console.error("ensureTeamId failed:", err);
return "";
}
};
const isSelectMode = ref(false);
const selectEventName = ref("");
@ -334,6 +350,7 @@ const sendArticle = async (article) => {
try {
const { doctorInfo } = useAccountStore();
await ensureTeamId();
// 使
const success = await sendArticleMessage(
{
@ -348,6 +365,7 @@ const sendArticle = async (article) => {
userId: doctorInfo?.userid,
customerId: pageParams.value.patientId,
corpId: corpId,
teamId: pageParams.value.teamId,
}
);
@ -383,6 +401,10 @@ onLoad((options) => {
if (options.corpId) {
pageParams.value.corpId = options.corpId;
}
if (options.teamId) {
pageParams.value.teamId = options.teamId;
}
ensureTeamId();
});
onMounted(() => {

View File

@ -76,6 +76,7 @@ const props = defineProps({
formatTime: { type: Function, required: true },
groupId: { type: String, default: "" },
userId: { type: String, default: "" },
teamId: { type: String, default: "" },
patientId: { type: String, default: "" },
corpId: { type: String, default: "" },
orderStatus: { type: String, default: "" },
@ -381,14 +382,14 @@ const showFollowUpTasks = () => {
//
const goToArticleList = () => {
uni.navigateTo({
url: `/pages/message/article-list?groupId=${props.groupId}&patientId=${props.patientId}&corpId=${props.corpId}`,
url: `/pages/message/article-list?groupId=${props.groupId}&patientId=${props.patientId}&corpId=${props.corpId}&teamId=${props.teamId}`,
});
};
//
const goToSurveyList = () => {
uni.navigateTo({
url: `/pages/message/survey-list?groupId=${props.groupId}&patientId=${props.patientId}&corpId=${props.corpId}&customerName=${props.patientInfo.name}`,
url: `/pages/message/survey-list?groupId=${props.groupId}&patientId=${props.patientId}&corpId=${props.corpId}&teamId=${props.teamId}&customerName=${props.patientInfo.name}`,
});
};

View File

@ -160,6 +160,7 @@
: ''
"
:userId="openid"
:teamId="teamId"
:patientId="patientId"
:corpId="corpId"
:patientInfo="patientInfo"
@ -249,6 +250,7 @@ const patientInfo = ref({
// ID
const patientId = ref("");
const teamId = ref("");
// - pending
const showConsultAccept = computed(() => orderStatus.value === "pending");
@ -314,6 +316,8 @@ const fetchGroupOrderStatus = async () => {
const teamName = result.data.team?.name || "群聊";
updateNavigationTitle(teamName);
teamId.value = result.data.teamId || result.data.team?.teamId || result.data.team?._id || "";
//
if (result.data.patient) {
patientInfo.value = {

View File

@ -102,6 +102,23 @@ const timChatManager = globalTimChatManager;
//
const customerId = ref("");
const customerName = ref("");
const teamId = ref("");
const groupId = ref("");
const ensureTeamId = async () => {
if (teamId.value) return teamId.value;
if (!groupId.value) return "";
try {
const res = await api("getGroupListByGroupId", { groupId: groupId.value }, false);
const team = res?.data?.team || {};
const resolved = res?.data?.teamId || team.teamId || team._id || "";
if (resolved) teamId.value = resolved;
return teamId.value;
} catch (err) {
console.error("ensureTeamId failed:", err);
return "";
}
};
//
const searchName = ref("");
@ -126,8 +143,11 @@ const selectEventName = ref("");
onLoad((options) => {
isSelectMode.value = String(options?.select || '') === '1';
selectEventName.value = String(options?.eventName || '');
groupId.value = options?.groupId || "";
customerId.value = options?.patientId || "";
customerName.value = options?.customerName || "";
teamId.value = options?.teamId || "";
ensureTeamId();
getCategoryList();
loadSurveyList();
});
@ -335,6 +355,7 @@ const sendSurvey = async (survey) => {
const doctorInfo = accountStore.doctorInfo;
userId.value = doctorInfo?.userid;
await ensureTeamId();
// 使
const success = await sendSurveyMessage(
{
@ -348,6 +369,7 @@ const sendSurvey = async (survey) => {
customerId: customerId.value,
customerName: customerName.value,
corpId: corpId,
teamId: teamId.value,
}
);

View File

@ -109,12 +109,16 @@ export async function sendArticleMessage(article, options = {}) {
if (result?.success) {
// 记录文章发送记录(异步,不阻塞)
if (options.articleId && options.userId && options.customerId && options.corpId) {
api('addArticleSendRecord', {
const params = {
articleId: options.articleId,
userId: options.userId,
customerId: options.customerId,
corpId: options.corpId,
}).catch((err) => {
};
if (options.teamId) {
params.teamId = options.teamId;
}
api('addArticleSendRecord', params).catch((err) => {
console.error('记录文章发送失败:', err);
});
}
@ -151,15 +155,20 @@ export async function sendSurveyMessage(survey, options = {}) {
// 生成发送ID
const sendSurveyId = generateRandomString(10);
// 创建问卷记录
const createRecordRes = await api('createSurveyRecord', {
const recordParams = {
corpId: options.corpId,
userId: options.userId,
surveryId: survey._id,
memberId: options.customerId,
customer: options.customerName,
sendSurveyId: sendSurveyId,
});
};
if (options.teamId) {
recordParams.teamId = options.teamId;
}
// 创建问卷记录
const createRecordRes = await api('createSurveyRecord', recordParams);
if (!createRecordRes?.success) {
toast(createRecordRes?.message || '创建问卷记录失败');