Fix Bug #426: 门诊医生站-检查开立:已选择列表应支持树形展开,显示套餐明细(项目/数量/单价)

根因: loadPackageDetails 函数中 res.code === 200 判断永远为 false(Axios 拦截
器已对 code===200 解包返回 res.data,解包后对象不含 code 字段),导致树形表格懒加
载套餐明细永远返回空数组。handleItemSelect 中 hasChildren 只判断了 packageId 但数据
库 check_part 表只有 package_name 无 package_id,导致套餐项无展开箭头。

修复:
1. loadPackageDetails 去掉 res.code 检查,直接用 parsePackageDetailsPayload 解析
   (与 loadPackageDetailsForItem 保持一致)
2. handleItemSelect hasChildren 增加 || item.packageName 条件

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
赵云
2026-05-16 16:30:06 +08:00
parent 5e5f2c3d79
commit 82b5fc747e

View File

@@ -584,7 +584,6 @@ async function loadPackageDetails(row, treeNode, resolve) {
url: `/system/check-type/package/${row.packageId}/details`, url: `/system/check-type/package/${row.packageId}/details`,
method: 'get' method: 'get'
}); });
if (res.code === 200) {
const list = parsePackageDetailsPayload(res); const list = parsePackageDetailsPayload(res);
const children = list.map((child) => ({ const children = list.map((child) => ({
...child, ...child,
@@ -595,9 +594,6 @@ async function loadPackageDetails(row, treeNode, resolve) {
isPackageDetail: true isPackageDetail: true
})); }));
resolve(children); resolve(children);
} else {
resolve([]);
}
} catch (err) { } catch (err) {
console.error('加载套餐明细失败:', err); console.error('加载套餐明细失败:', err);
resolve([]); resolve([]);
@@ -1489,7 +1485,7 @@ async function handleItemSelect(checked, item, cat) {
packageName: item.packageName || null, packageName: item.packageName || null,
packageDetailsLoading: false, packageDetailsLoading: false,
packageId: item.packageId || null, packageId: item.packageId || null,
hasChildren: !!(item.packageId) // #426修复: 树形表格懒加载展开标记 hasChildren: !!(item.packageId || item.packageName) // #426修复: 树形表格懒加载展开标记,支持 packageName 解析
}; };
selectedItems.value.push(newRow); selectedItems.value.push(newRow);
// 必须用数组里的响应式行,不能继续改局部 newRowpush 后列表内是 proxy改 raw 对象不会触发右侧卡片更新(会一直卡在「加载中」) // 必须用数组里的响应式行,不能继续改局部 newRowpush 后列表内是 proxy改 raw 对象不会触发右侧卡片更新(会一直卡在「加载中」)