From 68e2e0b7d7d12fc356128e7562e0f354fa4ce193 Mon Sep 17 00:00:00 2001 From: ShengLong <452591453@qq.com> Date: Fri, 8 May 2026 17:11:39 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E5=87=BA=E4=B8=B8=20=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=85=AC=E5=BC=8F=E4=BF=AE=E6=94=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/consumer/prescription/index.vue | 27 ++++++++++++++++--- .../consumer/prescription/order_list.vue | 7 ++--- .../consumer/prescription/order_list_h5.vue | 7 ++--- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/admin/src/views/consumer/prescription/index.vue b/admin/src/views/consumer/prescription/index.vue index 8900af65..12c67ac0 100644 --- a/admin/src/views/consumer/prescription/index.vue +++ b/admin/src/views/consumer/prescription/index.vue @@ -2138,6 +2138,22 @@ const rxOutPelletText = computed(() => { function computeOutPellet(v: any): string { if (!v) return '' + if ((v.prescription_type || '浓缩水丸') === '浓缩水丸') { + const days = Number(v.medication_days ?? v.usage_days ?? v.dose_count) + const times = Number(v.times_per_day) + const doseG = Number(v.dosage_amount) + const bags = Number(v.dosage_bag_count) > 0 ? Number(v.dosage_bag_count) : 1 + if ( + Number.isFinite(days) && + Number.isFinite(times) && + Number.isFinite(doseG) && + days > 0 && + times > 0 && + doseG > 0 + ) { + return formatNum(days * times * doseG * bags) + } + } const explicit = v.out_pellet || v.total_weight if (explicit && Number(explicit) > 0) return formatNum(Number(explicit)) const list = slipHerbsList.value @@ -3150,9 +3166,14 @@ const handleEdit = async (row: any) => { // 提交表单 const handleSubmit = async () => { if (!formRef.value) return - - await formRef.value.validate() - + + try { + await formRef.value.validate() + } catch { + // Element Plus:校验失败会 reject,表单项已展示错误,勿再向外抛成 Uncaught + return + } + // 验证药材 if (!editForm.herbs || editForm.herbs.length === 0) { feedback.msgError('请至少添加一味药材') diff --git a/admin/src/views/consumer/prescription/order_list.vue b/admin/src/views/consumer/prescription/order_list.vue index 15244f30..bf34cdf9 100644 --- a/admin/src/views/consumer/prescription/order_list.vue +++ b/admin/src/views/consumer/prescription/order_list.vue @@ -4701,13 +4701,14 @@ const slipPerBagDosageText = computed(() => { const slipPillGrams = computed(() => { const d = prescriptionViewData.value if (!d || (d.prescription_type || '浓缩水丸') !== '浓缩水丸') return null - /** 用药疗程以业务订单 medication_days 为准,缺省时回退处方 usage_days / 剂数 */ + /** 用药疗程以业务订单 medication_days 为准,缺省时回退处方 usage_days / 剂数;出丸 = 每袋用量×袋数×每天次数×服用天数 */ const days = Number(d.medication_days ?? d.usage_days ?? d.dose_count) const times = Number(d.times_per_day) const doseG = Number(d.dosage_amount) + const bags = Number(d.dosage_bag_count) > 0 ? Number(d.dosage_bag_count) : 1 if (!Number.isFinite(days) || !Number.isFinite(times) || !Number.isFinite(doseG)) return null if (days <= 0 || times <= 0 || doseG <= 0) return null - return days * times * doseG + return days * times * doseG * bags }) /* ============================================================ @@ -4818,7 +4819,7 @@ const rxUsageText = computed(() => { return seg.join(', ') }) -/** 出丸:优先用 slipPillGrams(按医嘱天数·次数·每包克数),否则按药材总量×剂数 */ +/** 出丸:优先用 slipPillGrams(每袋用量×袋数×每天次数×服用天数),否则按药材总量×剂数 */ const rxOutPelletGrams = computed(() => { const pill = slipPillGrams.value if (typeof pill === 'number' && isFinite(pill) && pill > 0) return formatNum(pill) diff --git a/admin/src/views/consumer/prescription/order_list_h5.vue b/admin/src/views/consumer/prescription/order_list_h5.vue index c907ce51..d03b4b45 100644 --- a/admin/src/views/consumer/prescription/order_list_h5.vue +++ b/admin/src/views/consumer/prescription/order_list_h5.vue @@ -4653,13 +4653,14 @@ const slipPerBagDosageText = computed(() => { const slipPillGrams = computed(() => { const d = prescriptionViewData.value if (!d || (d.prescription_type || '浓缩水丸') !== '浓缩水丸') return null - /** 用药疗程以业务订单 medication_days 为准,缺省时回退处方 usage_days / 剂数 */ + /** 用药疗程以业务订单 medication_days 为准,缺省时回退处方 usage_days / 剂数;出丸 = 每袋用量×袋数×每天次数×服用天数 */ const days = Number(d.medication_days ?? d.usage_days ?? d.dose_count) const times = Number(d.times_per_day) const doseG = Number(d.dosage_amount) + const bags = Number(d.dosage_bag_count) > 0 ? Number(d.dosage_bag_count) : 1 if (!Number.isFinite(days) || !Number.isFinite(times) || !Number.isFinite(doseG)) return null if (days <= 0 || times <= 0 || doseG <= 0) return null - return days * times * doseG + return days * times * doseG * bags }) /* ============================================================ @@ -4770,7 +4771,7 @@ const rxUsageText = computed(() => { return seg.join(', ') }) -/** 出丸:优先用 slipPillGrams(按医嘱天数·次数·每包克数),否则按药材总量×剂数 */ +/** 出丸:优先用 slipPillGrams(每袋用量×袋数×每天次数×服用天数),否则按药材总量×剂数 */ const rxOutPelletGrams = computed(() => { const pill = slipPillGrams.value if (typeof pill === 'number' && isFinite(pill) && pill > 0) return formatNum(pill)