docs(bug): 诸葛亮分析报告 Bug #765

This commit is contained in:
2026-06-12 15:59:00 +08:00
parent a350095ced
commit cec2f47a1f

View File

@@ -0,0 +1,74 @@
# Bug #765 诸葛亮分析报告
> **文档类型**: Bug分析
> **分析时间**: 2026-06-12 15:58:59
> **分析模型**: mimo-v2.5 (LLM深度分析)
---
## 基本信息
- **Bug #**: 765
- **标题**: [收费工作站-门诊挂号] 在“患者身份信息”框中选中检索的患者后,患者列表浮窗未自动隐藏
- **模块**: 建档挂号管理
- **提出人**: 陈显精
---
Now I have the complete picture. Here's my analysis:
---
### 一、Bug 理解
在门诊挂号页面的"患者身份信息"输入框中,用户输入关键字后弹出患者列表浮窗(`el-popover`),点击选中某行患者后,表单信息已正确回填,但浮窗没有自动关闭,继续遮挡下方录入项。用户期望选中后浮窗自动收起。
### 二、根因分析
问题出在 `outpatientregistration/index.vue` 中的 **popover 可见性控制逻辑**
**关键代码链路:**
| 位置 | 代码 | 作用 |
|------|------|------|
| `index.vue:118` | `:visible="showPopover"` | popover 显隐由 `showPopover` 控制 |
| `index.vue:125` | `@mousedown.prevent` | 阻止 mousedown 冒泡到 input防止点击列表时 input 失焦 |
| `index.vue:1990` | `handleFocus() → showPopover = true` | input 获焦显示浮窗 |
| `index.vue:1996` | `handleBlur() → showPopover = false` | input 失焦隐藏浮窗 |
| `index.vue:2228` | `selsectPatient(row)`**只回填表单,未关闭浮窗** | ⬅️ 根因 |
**根因**`selsectPatient` 函数只做了 `Object.assign(form.value, row)` 等字段回填,**没有设置 `showPopover.value = false`**。由于 `@mousedown.prevent` 阻止了点击列表时 input 的 blur 事件,`handleBlur` 不会被触发,浮窗就一直保持显示。
### 三、修复方案
**修改文件**`healthlink-his-ui/src/views/charge/outpatientregistration/index.vue`
**修改内容**:在 `selsectPatient` 函数末尾添加一行,关闭 popover
```javascript
function selsectPatient(row) {
Object.assign(form.value, row);
form.value.patientId = row.id;
form.value.searchKey = row.name;
form.value.name = row.name;
form.value.idCard = row.idCard;
form.value.genderEnum_enumText = row.genderEnum_enumText;
form.value.phone = row.phone;
form.value.firstEnum_enumText = row.firstEnum_enumText;
form.value.age = row.age;
form.value.identifierNo = row.identifierNo;
showPopover.value = false; // ← 新增:选中患者后关闭浮窗
}
```
**影响范围**:仅一处,不涉及后端、不涉及数据库、不涉及其他组件。
### 四、路由决策
**FIXER**: `zhaoyun`(前端开发)
**REASON**: 纯前端 Vue 组件修复,只需在 `index.vue``selsectPatient` 函数中增加一行 `showPopover.value = false;`,属于 Element Plus popover 交互问题,赵云负责前端界面修复。
---
## 路由决策
- **修复 Agent**: guanyu
- **原因**: LLM 分析决策