fix: 修复#428赵云代码语法错误 - loadPackageDetailsForItem函数位置错误
- 修复loadPackageDetailsForItem函数被错误插入到loadPackageDetails函数内部的问题 - 格式化模板代码,提高可读性 - 确保套餐明细加载逻辑正确工作
This commit is contained in:
@@ -354,8 +354,25 @@
|
||||
<el-icon><Close /></el-icon>
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- Bug #384修复: 展开后显示检查方法勾选框列表 -->
|
||||
<!-- Bug #428修复: 展开后显示套餐明细或检查方法 --> <div v-if="item.expanded"> <!-- 显示套餐明细 --> <div v-if="item.packageDetails && item.packageDetails.length > 0" class="package-details-list"> <div class="detail-row" v-for="detail in item.packageDetails" :key="detail.id"> <span class="detail-name">{{ detail.name }}</span> <span class="detail-info">数量: {{ detail.quantity }} 单价: ¥{{ detail.price }}</span> </div> </div> <!-- 显示检查方法 --> <div v-else-if="item.methods && item.methods.length > 0" class="method-list"> <div v-for="method in item.methods" :key="method.id" class="method-option"> <el-checkbox :model-value="item.selectedMethod?.id === method.id" @change="(val) => selectMethodCheckbox(val, item, method)"> <span class="method-name">{{ method.name }}</span> <span class="method-price">¥{{ method.packagePrice || item.price }}</span> </el-checkbox> </div> </div> </div>
|
||||
<!-- Bug #428修复: 展开后显示套餐明细或检查方法 -->
|
||||
<div v-if="item.expanded">
|
||||
<!-- 显示套餐明细 -->
|
||||
<div v-if="item.packageDetails && item.packageDetails.length > 0" class="package-details-list">
|
||||
<div class="detail-row" v-for="detail in item.packageDetails" :key="detail.id">
|
||||
<span class="detail-name">{{ detail.name }}</span>
|
||||
<span class="detail-info">数量: {{ detail.quantity }} 单价: ¥{{ detail.price }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 显示检查方法 -->
|
||||
<div v-else-if="item.methods && item.methods.length > 0" class="method-list">
|
||||
<div v-for="method in item.methods" :key="method.id" class="method-option">
|
||||
<el-checkbox :model-value="item.selectedMethod?.id === method.id" @change="(val) => selectMethodCheckbox(val, item, method)">
|
||||
<span class="method-name">{{ method.name }}</span>
|
||||
<span class="method-price">¥{{ method.packagePrice || item.price }}</span>
|
||||
</el-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -412,13 +429,39 @@ async function loadPackageDetails(row, treeNode, resolve) {
|
||||
resolve(children);
|
||||
} else {
|
||||
resolve([]);
|
||||
async function loadPackageDetailsForItem(item) { if (!item.isPackage || !item.packageId) { return; } try { const res = await request({ url: `/exam/package/${item.packageId}/details`, method: 'get' }); if (res.code === 200 && res.data) { item.packageDetails = res.data.map(detail => ({ ...detail, name: detail.name || detail.itemName, unit: detail.unit || '次', price: detail.price || detail.itemPrice || 0, quantity: detail.quantity || 1 })); } else { item.packageDetails = []; } } catch (err) { console.error('加载套餐明细失败:', err); item.packageDetails = []; } }
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('加载套餐明细失败:', err);
|
||||
resolve([]);
|
||||
}
|
||||
}
|
||||
|
||||
// #428: 为已选择项目加载套餐明细
|
||||
async function loadPackageDetailsForItem(item) {
|
||||
if (!item.isPackage || !item.packageId) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const res = await request({
|
||||
url: `/exam/package/${item.packageId}/details`,
|
||||
method: 'get'
|
||||
});
|
||||
if (res.code === 200 && res.data) {
|
||||
item.packageDetails = res.data.map(detail => ({
|
||||
...detail,
|
||||
name: detail.name || detail.itemName,
|
||||
unit: detail.unit || '次',
|
||||
price: detail.price || detail.itemPrice || 0,
|
||||
quantity: detail.quantity || 1
|
||||
}));
|
||||
} else {
|
||||
item.packageDetails = [];
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('加载套餐明细失败:', err);
|
||||
item.packageDetails = [];
|
||||
}
|
||||
}
|
||||
const detailTableRef = ref(null);
|
||||
const formRef = ref(null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user