205 检验项目设置-》套餐设置:点开【套餐设置】TAB页面的内容套餐金额、服务费及检验套餐明细带入脏数据,
206 检验项目设置-》套餐设置:卫生机构字段取值当前登录账户的科室名称了
This commit is contained in:
@@ -488,7 +488,24 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<span class="form-label">卫生机构</span>
|
<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>
|
||||||
<div class="form-item">
|
<div class="form-item">
|
||||||
<span class="form-label">套餐金额</span>
|
<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 = () => {
|
const refreshPage = () => {
|
||||||
getInspectionTypeList();
|
getInspectionTypeList();
|
||||||
// 刷新时也重新加载套餐项目
|
// 刷新时也重新加载套餐项目
|
||||||
loadPackageItemsFromAPI();
|
// loadPackageItemsFromAPI();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 页面加载时获取数据
|
// 页面加载时获取数据
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getInspectionTypeList();
|
getInspectionTypeList();
|
||||||
getLisGroupList();
|
getLisGroupList();
|
||||||
// 加载检验套餐明细项目
|
// // 加载检验套餐明细项目
|
||||||
loadPackageItemsFromAPI();
|
// loadPackageItemsFromAPI();
|
||||||
// 初始化计算套餐金额和服务费
|
// // 初始化计算套餐金额和服务费
|
||||||
calculateAmounts();
|
// calculateAmounts();
|
||||||
|
fetchTenantList(); // 页面加载时获取租户列表
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 监听检验分类代码,当字典数据加载完成后加载检验项目数据
|
// 监听检验分类代码,当字典数据加载完成后加载检验项目数据
|
||||||
watch(activity_category_code, (newVal) => {
|
watch(activity_category_code, (newVal) => {
|
||||||
if (newVal && newVal.length > 0 && inspectionItems.value.length === 0) {
|
if (newVal && newVal.length > 0 && inspectionItems.value.length === 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user