205 检验项目设置-》套餐设置:点开【套餐设置】TAB页面的内容套餐金额、服务费及检验套餐明细带入脏数据,
206 检验项目设置-》套餐设置:卫生机构字段取值当前登录账户的科室名称了
This commit is contained in:
@@ -488,7 +488,24 @@
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<span class="form-label">卫生机构</span>
|
||||
<el-input :model-value="userStore.orgName || '测试机构'" readonly />
|
||||
<el-select
|
||||
v-model="selectedTenantId"
|
||||
placeholder="请选择卫生机构"
|
||||
style="width: 100%;"
|
||||
@change="handleTenantChange"
|
||||
clearable
|
||||
filterable
|
||||
:loading="loadingTenant"
|
||||
no-data-text="暂无数据,请稍后重试"
|
||||
@visible-change="handleTenantVisibleChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tenantOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<span class="form-label">套餐金额</span>
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user