242 检验项目设置-》检验项目:费用套餐/下级医技类型字段两列无数据

This commit is contained in:
2026-03-19 15:54:53 +08:00
parent dc1366890f
commit 68c0c098c8
5 changed files with 72 additions and 14 deletions

View File

@@ -267,7 +267,9 @@
<el-table-column label="费用套餐" min-width="120" align="center">
<template #default="{ row }">
<template v-if="editingRowId === row.id">
<el-select v-model="row.package" placeholder="选择费用套餐" size="small" style="width: 100%;" filterable clearable @change="updateAmountFromPackage(row)" @visible-change="(visible) => { if (visible && feePackages.length === 0) getFeePackages() }">
<el-select v-model="row.feePackageId" placeholder="选择费用套餐" size="small" style="width: 100%;" filterable clearable
@change="(val) => { const pkg = feePackages.find(p => p.id === val); row.package = pkg ? pkg.packageName : ''; updateAmountFromPackage(row); }"
@visible-change="(visible) => { if (visible && feePackages.length === 0) getFeePackages() }">
<el-option label="选择费用套餐" value="" />
<el-option
v-for="pkg in feePackages"
@@ -278,7 +280,7 @@
</el-select>
</template>
<template v-else>
{{ row.package }}
{{ row.package || '-' }}
</template>
</template>
</el-table-column>
@@ -1289,14 +1291,16 @@ const loadObservationItems = async (resetPage = false) => {
id: item.id,
code: item.busNo || '',
name: item.name || '',
testType: item.inspectionTypeId_dictText || item.testType || '', // 优先使用字典翻译字段
inspectionTypeId: item.inspectionTypeId || null, // 检验类型ID
package: '',
testType: item.inspectionTypeId_dictText || item.testType || '',
inspectionTypeId: item.inspectionTypeId || null,
package: item.packageName || '',
feePackageId: item.feePackageId || null,
sampleType: item.specimenCode || '',
amount: parseFloat(item.retailPrice || 0),
sortOrder: item.sortOrder || null,
serviceRange: item.serviceRange || '全部',
sub医技Type: '',
subItemName: item.subItemName || '',
subItemId: item.subItemId || null,
remark: item.descriptionText || '',
status: true
}));
@@ -1888,8 +1892,8 @@ const editItem = (item) => {
};
const updateAmountFromPackage = (item) => {
if (item.package) {
const selectedPackage = feePackages.value.find(pkg => pkg.id === item.package);
if (item.feePackageId) {
const selectedPackage = feePackages.value.find(pkg => pkg.id === item.feePackageId);
if (selectedPackage) {
// 套餐总金额 = 套餐金额 + 服务费
const packageAmount = parseFloat(selectedPackage.packageAmount || 0);
@@ -1949,7 +1953,9 @@ const saveItem = async (item) => {
busNo: item.code.trim(),
name: item.name.trim(),
categoryCode: inspectionCategoryCode.value,
inspectionTypeId: item.inspectionTypeId || null, // 检验类型ID
inspectionTypeId: item.inspectionTypeId || null,
feePackageId: item.feePackageId || null,
subItemId: item.subItemId || null,
specimenCode: item.sampleType,
retailPrice: item.amount,
descriptionText: item.remark,
@@ -2035,7 +2041,7 @@ const exportTable = () => {
item.amount,
item.sortOrder || 999999,
`"${item.serviceRange || '全部'}"`,
`"${item.sub医技Type || '-'}"`,
`"${item.subItemName || '-'}"`,
`"${item.remark || '-'}"`
].join(','))
].join('\n');