diff --git a/.env.development b/.env.development
index 4160666..cce72c5 100644
--- a/.env.development
+++ b/.env.development
@@ -1,7 +1,7 @@
MP_API_BASE_URL=https://patient.youcan365.com
MP_IMAGE_URL=https://patient.youcan365.com
MP_CACHE_PREFIX=development
-MP_WX_APP_ID=wx6ee11733526b4f04
+MP_WX_APP_ID=wx1d8337a40c11d66c
MP_CORP_ID=wwe3fb2faa52cf9dfb
MP_TIM_SDK_APP_ID=1600123876
MP_INVITE_TEAMMATE_QRCODE=https://patient.youcan365.com/invite-teammate
diff --git a/.env.ip b/.env.ip
index 921439a..22cd3e5 100644
--- a/.env.ip
+++ b/.env.ip
@@ -1,7 +1,7 @@
MP_API_BASE_URL=http://192.168.60.2:8080
MP_IMAGE_URL=https://patient.youcan365.com
MP_CACHE_PREFIX=development
-MP_WX_APP_ID=wx6ee11733526b4f04
+MP_WX_APP_ID=wx1d8337a40c11d66c
MP_CORP_ID=wwe3fb2faa52cf9dfb
MP_TIM_SDK_APP_ID=1600123876
MP_INVITE_TEAMMATE_QRCODE=https://patient.youcan365.com/invite-teammate
diff --git a/.env.localhost b/.env.localhost
index 301ded7..3d46ace 100644
--- a/.env.localhost
+++ b/.env.localhost
@@ -1,7 +1,7 @@
MP_API_BASE_URL=http://localhost:8080
MP_IMAGE_URL=https://patient.youcan365.com
MP_CACHE_PREFIX=development
-MP_WX_APP_ID=wx6ee11733526b4f04
+MP_WX_APP_ID=wx1d8337a40c11d66c
MP_CORP_ID=wwe3fb2faa52cf9dfb
MP_TIM_SDK_APP_ID=1600123876
MP_INVITE_TEAMMATE_QRCODE=https://patient.youcan365.com/invite-teammate
diff --git a/App.vue b/App.vue
index 133cbaf..c711911 100644
--- a/App.vue
+++ b/App.vue
@@ -5,18 +5,21 @@ import { globalTimChatManager } from "@/utils/tim-chat.js";
export default {
onLaunch: function () {
// 需在 pinia 安装后再获取 store,避免 getActivePinia 报错
- const { account, login, initIMAfterLogin } = useAccountStore();
-
+ const { account, login, initIMAfterLogin, getDoctorInfo } =
+ useAccountStore();
+
// 如果已有缓存的账户信息,尝试初始化 IM,否则重新登录
+ debugger;
if (account && account.openid) {
console.log("App Launch: 已有登录信息,初始化 IM");
- initIMAfterLogin().catch(err => {
- console.error('IM初始化失败:', err);
+ initIMAfterLogin().catch((err) => {
+ console.error("IM初始化失败:", err);
});
+ getDoctorInfo();
} else {
console.log("App Launch: 无登录信息,开始登录");
- login().catch(err => {
- console.error('自动登录失败:', err);
+ login().catch((err) => {
+ console.error("自动登录失败:", err);
});
}
},
@@ -40,7 +43,7 @@ export default {
\ No newline at end of file
+
diff --git a/pages/message/index.vue b/pages/message/index.vue
index af3b417..2dcb4b8 100644
--- a/pages/message/index.vue
+++ b/pages/message/index.vue
@@ -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 = {
@@ -1018,4 +1022,4 @@ onUnmounted(() => {
\ No newline at end of file
+
diff --git a/pages/message/survey-list.vue b/pages/message/survey-list.vue
index a95be47..0507766 100644
--- a/pages/message/survey-list.vue
+++ b/pages/message/survey-list.vue
@@ -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,
}
);
diff --git a/store/account.js b/store/account.js
index a1f6506..19e2612 100644
--- a/store/account.js
+++ b/store/account.js
@@ -41,6 +41,7 @@ export default defineStore("accountStore", () => {
async function loginByCode(phoneCode = '') {
try {
+ debugger
const { code } = await uni.login({
appid,
provider: "weixin",
@@ -82,13 +83,16 @@ export default defineStore("accountStore", () => {
async function getDoctorInfo(data = {}) {
try {
+ debugger
const res = await api('getCorpMemberData', {
...data,
weChatOpenId: account.value.openid,
});
doctorInfo.value = res?.data || null;
-
- // 持久化医生信息
+ if (doctorInfo.value.accountState && doctorInfo.value.accountState == "disable") {
+ uni.redirectTo({ url: "/pages/login/login" });
+ return;
+ }
if (res?.data) {
cache.set(CACHE_KEYS.DOCTOR_INFO, res.data);
}
diff --git a/utils/send-message-helper.js b/utils/send-message-helper.js
index 05f477a..19331d9 100644
--- a/utils/send-message-helper.js
+++ b/utils/send-message-helper.js
@@ -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 || '创建问卷记录失败');