From a9e3bc244e1fd1814805a7fdb8d308833db1478b Mon Sep 17 00:00:00 2001 From: huxuejian Date: Fri, 7 Aug 2026 14:59:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/chat/index.vue | 9 +++++++++ pages/consult/history-drugs/history-drugs.vue | 5 +++++ pages/consult/info.vue | 2 +- pages/home/home.vue | 1 + pages/member/list.vue | 6 +----- pages/record/order-detail.vue | 15 +++++++++++++-- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/pages/chat/index.vue b/pages/chat/index.vue index e53979f..18babcb 100644 --- a/pages/chat/index.vue +++ b/pages/chat/index.vue @@ -118,6 +118,7 @@ const reconnectAttempts = ref(0); // 重连尝试次数 const MAX_RECONNECT_ATTEMPTS = 5; // 最大重连次数 const POLLING_INTERVAL = 10000; // 轮询间隔 10 秒 const infoVisible = ref(false); +const prePage = ref(''); // 消息接收超时检测相关变量 const lastMessageTime = ref(Date.now()); // 最后一次收到消息的时间 @@ -555,6 +556,7 @@ function endRtcSession() { // 页面加载 onLoad(async (options) => { + prePage.value = options.prePage || ''; uni.$on('autoRxFail', () => { footerBtnMode.value = 'reEdit'; canReEdit.value = true; @@ -638,6 +640,13 @@ onUnload(() => { // 结束可能存在的视频问诊:交由插件自身的 onHangup/onError 事件处理,不在页面卸载时强制挂断, // 避免与插件的接听/通话流程冲突导致刚接通就被立即挂断。 endRtcSession(); + if (prePage.value === 'createOrder') { + setTimeout(() => { + uni.redirectTo({ + url: `/pages/record/order-detail?orderId=${consult.value?.orderId || orderId.value}&prePage=createOrder` + }) + }, 750) + } }); // 页面隐藏或返回上一页时,也确保挂断并清理通话状态 diff --git a/pages/consult/history-drugs/history-drugs.vue b/pages/consult/history-drugs/history-drugs.vue index f5f4bb9..337c026 100644 --- a/pages/consult/history-drugs/history-drugs.vue +++ b/pages/consult/history-drugs/history-drugs.vue @@ -66,6 +66,7 @@ import ConfirmPopup from './confirm-popup.vue'; import EmptyComponent from '@/components/empty.vue'; const { order } = storeToRefs(orderStore()); +const { autoFillDisease } = orderStore(); const { elderClass, elderVarStyle } = useElder(); const tabs = [{ label: '本院历史处方', value: 'history-prescription' }, { label: '医保购药记录', value: 'purchase-record' }]; const activeTab = ref('history-prescription'); @@ -81,6 +82,9 @@ function cancel() { function changeDrugs(list) { visible.value = false; + const preDrugIds = order.value.drugs.map(i => i._id); + const drugIds = list.map(i => i._id); + const newDrugIds = drugIds.filter(i => !preDrugIds.includes(i)); list.forEach(i => { const index = order.value.drugs.findIndex(j => j.insurance_code === i.insurance_code); if (index >= 0) { @@ -89,6 +93,7 @@ function changeDrugs(list) { order.value.drugs.push(i); } }) + autoFillDisease(newDrugIds); uni.navigateBack() } diff --git a/pages/consult/info.vue b/pages/consult/info.vue index 11341ff..8e1f284 100644 --- a/pages/consult/info.vue +++ b/pages/consult/info.vue @@ -435,7 +435,7 @@ async function enterRoom() { await imStore.enterConversation(conversationID); hideLoading(); uni.redirectTo({ - url: `/pages/chat/index?conversationID=${conversationID}&orderId=${orderId.value}`, + url: `/pages/chat/index?conversationID=${conversationID}&orderId=${orderId.value}&prePage=createOrder`, }); } catch (error) { hideLoading(); diff --git a/pages/home/home.vue b/pages/home/home.vue index 5397e94..27ee0d9 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -66,6 +66,7 @@ import { ref, onUnmounted } from "vue"; import { onLoad, onHide } from "@dcloudio/uni-app"; import useUser from "@/hooks/useUser"; import { autoAddHlwPatient, isDoctorOnline } from '@/utils/api' +import { toast } from "@/utils/widget"; import fullPage from "@/components/full-page.vue"; import confirmPopup from "./confirm-popup.vue"; import storePopup from "./store-popup.vue"; diff --git a/pages/member/list.vue b/pages/member/list.vue index 4c7fa02..20bf43b 100644 --- a/pages/member/list.vue +++ b/pages/member/list.vue @@ -25,10 +25,6 @@ {{ item.maskName }} - - {{ item.maskMobile }} @@ -59,7 +55,7 @@ const { userInfo, logined, patientList, loadPatientList } = useUser(); // 适老化模式状态 const elderMode = ref(false); const selfPatient = computed(() => patientList.value.find(item => item.isSelf) || null); -const otherPatients = computed(() => patientList.value.filter(item => !item.isSelf)); +const otherPatients = computed(() => patientList.value.filter(item => !item.isSelf && !item.isTemporary)); onMounted(() => { // 从本地存储读取适老化模式状态 diff --git a/pages/record/order-detail.vue b/pages/record/order-detail.vue index 3cf356b..ce03eb4 100644 --- a/pages/record/order-detail.vue +++ b/pages/record/order-detail.vue @@ -20,7 +20,7 @@ 病历概要: - 点击查看 + 点击查看 @@ -104,13 +104,14 @@ const msg = ref(""); const pay = useYbPay(null, reload); const diagnosis = ref(null) const timer = ref(null) +const prePage = ref(''); // 适老化模式状态 const elderMode = ref(false); onMounted(() => { // 从本地存储读取适老化模式状态 - const savedElderMode = uni.getStorageSync('elderMode')||false; + const savedElderMode = uni.getStorageSync('elderMode') || false; if (savedElderMode !== null && savedElderMode !== undefined) { elderMode.value = !!savedElderMode @@ -118,12 +119,18 @@ onMounted(() => { }); onLoad((e) => { + prePage.value = e.prePage; if (e.orderId) { getOrderDetail(e.orderId); } }); onUnload(() => { timer.value && clearInterval(timer.value) + if (prePage.value === 'createOrder') { + uni.redirectTo({ + url: `/pages/record/consult-record` + }) + } }) function reload() { @@ -396,6 +403,10 @@ text { font-weight: 500; } +.link-text { + color: $theme-brown-primary; +} + .link-text--elder { font-size: 39rpx !important; // 28 * 1.4 font-weight: bold;