29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
|
||
## Bug #426 修复报告
|
||
|
||
### 根因分析
|
||
Element Plus `el-table` 的懒加载树形模式(`lazy` + `:load` + `tree-props="{ hasChildren: 'hasChildren' }"`)要求每一行数据必须包含 `hasChildren: true` 属性,才会在该行前渲染展开箭头(+ / -)。
|
||
|
||
代码中所有创建 `selectedItems` 行对象的路径(共7处)都正确设置了 `isPackage: true` 和 `packageId`,但**遗漏了 `hasChildren` 属性**,导致树形表格无法识别哪些行是可展开的套餐项。
|
||
|
||
### 影响范围
|
||
- **文件**: `examinationApplication.vue`(前端)
|
||
- **涉及函数**: `handleItemSelect`、`handleMethodSelect`、`handleRowClick`、`onDetailMethodChange`
|
||
- **数据表**: 无数据库变更
|
||
|
||
### 修复方案
|
||
在7处代码路径中,当 `packageId` 存在时同步设置 `hasChildren: true`:
|
||
1. `handleRowClick` 初始 item 创建: `hasChildren: false`
|
||
2. `handleRowClick` 回充时设置 `isPackage` 两处: `hasChildren: true`
|
||
3. `handleMethodSelect` 已存在项更新: `hasChildren: true`
|
||
4. `handleMethodSelect` 新项创建: `hasChildren: !!(method.packageId || targetItem.packageId)`
|
||
5. `handleItemSelect` 新行创建: `hasChildren: !!(item.packageId)`
|
||
6. `onDetailMethodChange` 方法切换: `hasChildren: true`
|
||
|
||
### 验证计划
|
||
- 在门诊医生站选择检查套餐后,"检查明细" tab 的树形表格应显示展开箭头
|
||
- 点击展开箭头应懒加载套餐明细(项目名称、数量、单价)
|
||
- 回充已保存申请单时套餐项应正确显示展开箭头
|
||
|
||
修复结果:✅ 成功,13行改动
|