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) {