From 03313259298c73eb833e203f8e7c7c8cb1109bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Wed, 5 Aug 2026 17:54:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=97=85=E5=8E=86=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/components/PrescriptionModal.vue | 2 + .../components/PatientBriefBar.vue | 147 +++++++++++++----- .../views/doctor/doctor-reception/index.vue | 10 ++ 3 files changed, 119 insertions(+), 40 deletions(-) diff --git a/apps/web-antd/src/views/business/chat/components/PrescriptionModal.vue b/apps/web-antd/src/views/business/chat/components/PrescriptionModal.vue index 7c9cd073..8e340d56 100644 --- a/apps/web-antd/src/views/business/chat/components/PrescriptionModal.vue +++ b/apps/web-antd/src/views/business/chat/components/PrescriptionModal.vue @@ -1145,6 +1145,8 @@ const cancelSaveCommonPrescription = () => { :register="prescriptionStore.patientInfo" :patient="prescriptionStore.activePatient" :category="prescriptionStore.category" + :store-name="prescriptionStore.targetStoreName || prescriptionStore.currentStoreName" + :is-online="true" /> /** * 接诊台顶部患者简要信息条 - * 只展示门诊号/日期/费别/姓名/性别/年龄/手机(诊断只在处方/病历编辑区一处维护) + * 上方居中展示诊所名 + 处方类型;下方展示门诊号/日期/费别/姓名等 + * 诊断只在处方/病历编辑区一处维护 */ import { computed } from 'vue'; import { Tag } from 'ant-design-vue'; import SensitiveText from '#/components/sensitive-text/SensitiveText.vue'; +import { formatStoreNameWithHu } from '#/utils/formatStoreNameWithHu'; defineOptions({ name: 'PatientBriefBar' }); @@ -19,14 +21,49 @@ const props = withDefaults( patient?: Record | null; /** 当前费别:1 自费 2 医保 */ category?: number; + /** 诊所名称(优先;也可从 register.store.name 兜底) */ + storeName?: string; + /** + * 是否在线复诊开方 + * false/0:门诊普通处方笺;true/1/2/3:在线处方 + */ + isOnline?: boolean | number; }>(), { register: null, patient: null, category: 1, + storeName: '', + isOnline: false, }, ); +const onlineFlag = computed(() => { + if (props.isOnline === true) return 1; + if (props.isOnline === false) return 0; + const fromProp = Number(props.isOnline); + if (fromProp > 0) return fromProp; + // 挂号单上可能带 is_online + return Number(props.register?.is_online || 0); +}); + +/** 居中诊所名:在线渠道按既有规则追加(互) */ +const displayStoreName = computed(() => { + const raw = + String(props.storeName || '').trim() || + String(props.register?.store?.name || props.register?.store_name || '').trim(); + return formatStoreNameWithHu(raw, onlineFlag.value) || '诊所'; +}); + +/** 处方类型标题:线下普通 / 线上复诊 */ +const prescriptionTypeTitle = computed(() => { + const online = onlineFlag.value; + if (online === 1 || online === 2 || online === 3) { + return '在线处方'; + } + return '门诊普通处方笺'; +}); + const sexText = computed(() => { const sex = Number(props.patient?.sex || 0); if (sex === 1) return '男'; @@ -54,57 +91,87 @@ const visitDate = computed(() => {