diff --git a/openhis-ui-vue3/src/views/doctorstation/components/adviceBaseList.vue b/openhis-ui-vue3/src/views/doctorstation/components/adviceBaseList.vue index d009eeec..47bd2f6a 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/adviceBaseList.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/adviceBaseList.vue @@ -67,7 +67,7 @@ import { throttle } from 'lodash-es'; const props = defineProps({ adviceQueryParams: { type: Object, - default: '', + required: true }, patientInfo: { type: Object, @@ -97,39 +97,25 @@ const throttledGetList = throttle( watch( () => props.adviceQueryParams, (newValue) => { - queryParams.value.searchKey = newValue.searchKey; - // queryParams.value.adviceType = newValue.adviceType; + console.log('adviceBaseList 接收到参数变化:', newValue); + + // 直接更新查询参数 + queryParams.value.searchKey = newValue.searchKey || ''; + + // 处理类型筛选 if (newValue.adviceType) { - queryParams.value.adviceTypes = [newValue.adviceType].join(','); + // 单个类型 + queryParams.value.adviceTypes = newValue.adviceType.toString(); } else { + // 全部类型 queryParams.value.adviceTypes = '1,2,3'; } - throttledGetList(); + + console.log('发送请求参数:', queryParams.value); + getList(); }, - { deep: true } + { deep: true, immediate: true } ); - -getList(); -function getList() { - queryParams.value.organizationId = props.patientInfo.orgId; - getAdviceBaseInfo(queryParams.value).then((res) => { - console.log('ssssssssss', res.data.records); - if (res.data.records.length > 0) { - adviceBaseList.value = res.data.records.filter((item) => { - if (item.adviceType == 1 || item.adviceType == 2) { - return handleQuantity(item) != 0; - } else { - return true; - } - }); - total.value = res.data.total; - nextTick(() => { - currentIndex.value = 0; - adviceBaseRef.value.setCurrentRow(adviceBaseList.value[0]); - }); - } - }); -} // 从priceList列表中获取价格 function getPriceFromInventory(row) { if (row.priceList && row.priceList.length > 0) { @@ -138,6 +124,38 @@ function getPriceFromInventory(row) { } return '-'; } +function getList() { + queryParams.value.organizationId = props.patientInfo.orgId; + + console.log('发送API请求:', queryParams.value); + + getAdviceBaseInfo(queryParams.value).then((res) => { + if (res.data.records && res.data.records.length > 0) { + adviceBaseList.value = res.data.records.filter((item) => { + if (item.adviceType == 1 || item.adviceType == 2) { + return handleQuantity(item) != 0; + } else { + return true; + } + }); + + console.log('过滤后数据显示:', adviceBaseList.value.length, '条'); + + total.value = res.data.total; + nextTick(() => { + currentIndex.value = 0; + if (adviceBaseList.value.length > 0) { + adviceBaseRef.value.setCurrentRow(adviceBaseList.value[0]); + } + }); + } else { + adviceBaseList.value = []; + } + }).catch(error => { + console.error('获取数据失败:', error); + adviceBaseList.value = []; + }); +} // 处理键盘事件 const handleKeyDown = (event) => { const key = event.key; diff --git a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue index 5ce3a36c..9f5b14e7 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -561,9 +561,20 @@ (value) => { expandOrder = []; prescriptionList[scope.$index].adviceName = undefined; - adviceQueryParams.adviceType = value; - } - " + + // 直接更新查询参数 + adviceQueryParams.value.adviceType = value; + adviceQueryParams.value.searchKey = ''; + + console.log('医嘱类型改变为:', value, '查询参数:', adviceQueryParams.value); + + // 确保弹窗重新打开 + nextTick(() => { + row.showPopover = true; + handleFocus(scope.row, scope.$index); + }); + } + " > { + row.showPopover = false; + }, 200); } function handleChange(value) { @@ -1096,7 +1120,7 @@ function selectAdviceBase(key, row) { prescriptionList.value[rowIndex.value].orgId = JSON.parse(JSON.stringify(row)).positionId; prescriptionList.value[rowIndex.value].unitPrice = row.priceList[0].price; } - expandOrder.value = [key]; + expandOrder.value = [key]; nextTick(() => { if (row.adviceType == 1) { if (row.injectFlag == 1) { @@ -1108,6 +1132,7 @@ function selectAdviceBase(key, row) { inputRefs.value['quantity']?.focus(); } }); + } function getOrgList() {