From 427d567337844471898554e63fb8fef4a47afea6 Mon Sep 17 00:00:00 2001 From: duzhongxu <15039018447@163.com> Date: Fri, 20 Mar 2026 17:26:02 +0800 Subject: [PATCH] =?UTF-8?q?205=20=E6=A3=80=E9=AA=8C=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=9A=E7=82=B9=E5=BC=80=E3=80=90=E5=A5=97=E9=A4=90?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E3=80=91TAB=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=A5=97=E9=A4=90=E9=87=91=E9=A2=9D=E3=80=81?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E8=B4=B9=E5=8F=8A=E6=A3=80=E9=AA=8C=E5=A5=97?= =?UTF-8?q?=E9=A4=90=E6=98=8E=E7=BB=86=E5=B8=A6=E5=85=A5=E8=84=8F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=20206=20=E6=A3=80=E9=AA=8C=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=9A=E5=8D=AB=E7=94=9F=E6=9C=BA=E6=9E=84=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=96=E5=80=BC=E5=BD=93=E5=89=8D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=B4=A6=E6=88=B7=E7=9A=84=E7=A7=91=E5=AE=A4=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/maintainSystem/Inspection/index.vue | 107 +++++++++++++++++- 1 file changed, 101 insertions(+), 6 deletions(-) diff --git a/openhis-ui-vue3/src/views/maintainSystem/Inspection/index.vue b/openhis-ui-vue3/src/views/maintainSystem/Inspection/index.vue index d7f87497..21b02482 100644 --- a/openhis-ui-vue3/src/views/maintainSystem/Inspection/index.vue +++ b/openhis-ui-vue3/src/views/maintainSystem/Inspection/index.vue @@ -488,7 +488,24 @@
卫生机构 - + + +
套餐金额 @@ -1006,7 +1023,83 @@ const handleFocus = () => { } */ }; +// 获取当前登录用户信息 +// --- 新增:存储租户/机构列表和当前选中的值 --- +const tenantOptions = ref([]); // 存储从后端获取的租户列表 +const selectedTenantId = ref(null); // 存储当前选中的租户ID +// --- 新增:控制租户列表加载状态 --- +const loadingTenant = ref(false); // 控制下拉框的加载状态 +const fetchTenantList = async () => { + + if (loadingTenant.value) return; // 防止重复请求 + loadingTenant.value = true; + + try { + + const response = await request({ + url: '/system/tenant/page', + method: 'get', + params: { + pageNum: 1, + pageSize: 100 + } + }); + + + + if (response.code === 200) { + let tenantData = []; + + // --- 关键修改:优先检查 records 字段 --- + if (response.data && response.data.records && Array.isArray(response.data.records)) { + tenantData = response.data.records; + + } else if (response.data && response.data.rows && Array.isArray(response.data.rows)) { + // 兼容旧的 rows 格式 + tenantData = response.data.rows; + + } else if (response.data && Array.isArray(response.data)) { + // 兼容最简单的数组格式 + tenantData = response.data; + + } else { + + tenantData = []; + } + + // 格式化数据以适应 el-select + tenantOptions.value = tenantData.map(item => ({ + value: item.id, + label: item.tenantName || item.name || item.orgName || String(item.id) || '未知机构' + })); + + // 如果仍未设置默认值且列表不为空,选择第一个 + if (!selectedTenantId.value && tenantOptions.value.length > 0) { + selectedTenantId.value = tenantOptions.value[0].value; + + } + } else { + + ElMessage.error(response.msg || '获取机构列表失败,请联系管理员'); + tenantOptions.value = []; + } + } catch (error) { + + ElMessage.error('网络异常或数据解析错误,请检查控制台日志'); + tenantOptions.value = []; + } finally { + // 确保无论成功还是失败都停止加载状态 + loadingTenant.value = false; + } + +}; +// 展开时若列表为空则加载数据 +const handleTenantVisibleChange = async (visible) => { + if (visible && tenantOptions.value.length === 0) { // 仅在展开且列表为空时加载 + await fetchTenantList(); + } +}; /** * 获取数据方法 * 这里不再接收搜索关键词,而是直接拉取所有启用的套餐 @@ -2416,19 +2509,21 @@ const handlePackageManagement = () => { const refreshPage = () => { getInspectionTypeList(); // 刷新时也重新加载套餐项目 - loadPackageItemsFromAPI(); + // loadPackageItemsFromAPI(); }; // 页面加载时获取数据 onMounted(() => { getInspectionTypeList(); getLisGroupList(); - // 加载检验套餐明细项目 - loadPackageItemsFromAPI(); - // 初始化计算套餐金额和服务费 - calculateAmounts(); + // // 加载检验套餐明细项目 + // loadPackageItemsFromAPI(); + // // 初始化计算套餐金额和服务费 + // calculateAmounts(); + fetchTenantList(); // 页面加载时获取租户列表 }); + // 监听检验分类代码,当字典数据加载完成后加载检验项目数据 watch(activity_category_code, (newVal) => { if (newVal && newVal.length > 0 && inspectionItems.value.length === 0) {