diff --git a/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue b/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue index d571209b..9e7c5f86 100644 --- a/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue +++ b/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue @@ -378,6 +378,9 @@ + + {{ detailDietaryText }} + {{ Number(detailPrescription.void_status) === 1 ? '已作废' : '正常' }} @@ -837,7 +840,8 @@ import { logisticsTraceLineUrgent, analyzeLogisticsPayloadUrgent, parseLogisticsTracePayload, - canUpdateAmount + canUpdateAmount, + formatDietaryTaboo } from './prescription-order-utils' const props = withDefaults( @@ -896,6 +900,8 @@ const detailPrescription = computed(() => { return p && typeof p === 'object' ? p : null }) +const detailDietaryText = computed(() => formatDietaryTaboo(detailPrescription.value?.dietary_taboo)) + const detailLinkedPayOrders = computed(() => { const d = detailData.value if (!d) return [] diff --git a/admin/src/views/consumer/prescription/components/prescription-order-utils.ts b/admin/src/views/consumer/prescription/components/prescription-order-utils.ts index e65cec92..0602f327 100644 --- a/admin/src/views/consumer/prescription/components/prescription-order-utils.ts +++ b/admin/src/views/consumer/prescription/components/prescription-order-utils.ts @@ -340,3 +340,18 @@ export function canUpdateAmount(row: { id?: number; fulfillment_status?: number const fs = Number(row.fulfillment_status) return fs !== 3 && fs !== 4 } + +/** 处方忌口:库内逗号分隔字符串或前端多选数组,统一为「、」连接展示 */ +export function formatDietaryTaboo(raw: unknown): string { + if (Array.isArray(raw)) { + return raw.map((v) => String(v ?? '').trim()).filter(Boolean).join('、') + } + if (typeof raw === 'string' && raw.trim()) { + return raw + .split(',') + .map((s) => s.trim()) + .filter(Boolean) + .join('、') + } + return '' +} diff --git a/admin/src/views/consumer/prescription/index.vue b/admin/src/views/consumer/prescription/index.vue index f9e54a36..25ba16a7 100644 --- a/admin/src/views/consumer/prescription/index.vue +++ b/admin/src/views/consumer/prescription/index.vue @@ -437,6 +437,7 @@

主方服法:{{ rxUsageText }}

辅方服法:{{ rxAuxUsageText }}

医嘱:{{ rxAdviceText }}

+

忌口:{{ slipDietaryText }}

备注:{{ rxRemarkText }}

药房备注:{{ rxPharmacyRemarkText }} diff --git a/admin/src/views/consumer/prescription/order_list.vue b/admin/src/views/consumer/prescription/order_list.vue index c04089c0..9e743a70 100644 --- a/admin/src/views/consumer/prescription/order_list.vue +++ b/admin/src/views/consumer/prescription/order_list.vue @@ -1898,6 +1898,7 @@

辅服法:{{ rxAuxUsageText }}

医嘱:{{ rxAdviceText }}

+

忌口:{{ slipDietaryText }}

备注:{{ rxRemarkText }}

药房备注:{{ rxPharmacyRemarkText }} @@ -2144,6 +2145,7 @@ import { analyzeLogisticsPayloadUrgent, parseLogisticsTracePayload, canUpdateAmount, + formatDietaryTaboo, type SlipFormulaType, type SlipAuxUsageForm } from './components/prescription-order-utils' @@ -4544,12 +4546,7 @@ const slipAuxHerbs = computed(() => slipHerbsList.value.filter((h: any) => normalizeSlipFormulaType(h?.formula_type) === '辅方') ) -const slipDietaryText = computed(() => { - const d = prescriptionViewData.value?.dietary_taboo - if (Array.isArray(d)) return d.filter(Boolean).join('、') - if (typeof d === 'string' && d.trim()) return d.trim() - return '' -}) +const slipDietaryText = computed(() => formatDietaryTaboo(prescriptionViewData.value?.dietary_taboo)) const slipChuwanVisible = computed(() => { const d = prescriptionViewData.value diff --git a/admin/src/views/consumer/prescription/order_list_h5.vue b/admin/src/views/consumer/prescription/order_list_h5.vue index 414e30df..b2021e4b 100644 --- a/admin/src/views/consumer/prescription/order_list_h5.vue +++ b/admin/src/views/consumer/prescription/order_list_h5.vue @@ -894,6 +894,9 @@ + + {{ detailDietaryText }} + {{ Number(detailPrescription.void_status) === 1 ? '已作废' : '正常' }} @@ -2311,6 +2314,7 @@

服法:{{ rxUsageText }}

医嘱:{{ rxAdviceText }}

+

忌口:{{ slipDietaryText }}

备注:{{ rxRemarkText }}

药房备注:{{ rxPharmacyRemarkText }} @@ -2569,6 +2573,7 @@ import { getDoctors, getAssistants } from '@/api/tcm' +import { formatDietaryTaboo } from './components/prescription-order-utils' import html2canvas from 'html2canvas' import { jsPDF } from 'jspdf' import { getDictData } from '@/api/app' @@ -3579,6 +3584,8 @@ const detailPrescription = computed(() => { return p && typeof p === 'object' ? p : null }) +const detailDietaryText = computed(() => formatDietaryTaboo(detailPrescription.value?.dietary_taboo)) + function normalizeBizPhone(v: unknown): string { if (v === null || v === undefined) return '' return String(v).replace(/\s/g, '').trim() @@ -5185,12 +5192,7 @@ const slipHerbsList = computed(() => { return Array.isArray(h) ? h : [] }) -const slipDietaryText = computed(() => { - const d = prescriptionViewData.value?.dietary_taboo - if (Array.isArray(d)) return d.filter(Boolean).join('、') - if (typeof d === 'string' && d.trim()) return d.trim() - return '' -}) +const slipDietaryText = computed(() => formatDietaryTaboo(prescriptionViewData.value?.dietary_taboo)) const slipChuwanVisible = computed(() => { const d = prescriptionViewData.value