# Bug #762 诸葛亮分析报告
> **文档类型**: Bug分析
> **分析时间**: 2026-06-12 14:18:44
> **分析模型**: mimo-v2.5 (LLM深度分析)
---
## 基本信息
- **Bug #**: 762
- **标题**: [住院护士站-领药汇总]“汇总领药”界面的筛选标签文字丢失且功能失效
- **模块**: 病区护士工作站
- **提出人**: 陈显精
---
I now have a complete picture. Let me produce the analysis.
---
### 一、Bug 理解
住院护士站的"汇总领药"页面中,顶部筛选栏有两组 `el-radio-group`:第一组是药物类别("西药"/"中药"),第二组是展示方式("明细"/"汇总")。当前这 4 个按钮均只显示空白(无文字标签),用户无法辨识按钮功能;同时点击切换按钮不能触发数据筛选刷新,功能完全失效。
### 二、根因分析
**根因在** `drugDistribution/index.vue`,涉及两个独立缺陷:
**缺陷 1:`el-radio-button` 缺少 `label` 属性(UI 文字丢失)**
文件 `healthlink-his-ui/src/views/inpatientNurse/drugDistribution/index.vue`,第 60-76 行:
```html
```
Element Plus 的 `el-radio-button` 中,`value`(或旧版 `label`)控制内部值,但**按钮显示文字来自 `label` prop 或 `` 插槽**。这里只设了 `value` 没设 `label`,导致按钮渲染为空白。
**缺陷 2:`drugType` 变更未触发数据刷新 + `isDetails` 切换到汇总时也不刷新(功能失效)**
- `drugType` 的 `el-radio-group` 没有 `@change` 事件处理 → 切换西药/中药不触发任何数据请求。
- `handleRadioChange` 函数(第 266 行)仅处理 `value == '1'`(明细模式),切换到汇总模式(`value == '2'`)时不调用 `handleGetPrescription()`。
- `drugType` 未作为 prop 传给子组件 `PrescriptionList` / `SummaryMedicineList`,后端 API 无法区分药物类别。
### 三、修复方案
**仅需修改 1 个文件**:`healthlink-his-ui/src/views/inpatientNurse/drugDistribution/index.vue`
**修改 1 — 添加 label 属性恢复按钮文字:**
```html
```
**修改 2 — 新增 `handleDrugTypeChange` 方法:**
```javascript
function handleDrugTypeChange() {
chooseAll.value = false;
handleGetPrescription();
}
```
**修改 3 — 修复 `handleRadioChange` 使其在两种模式下都触发刷新:**
```javascript
// 修改前(只处理明细)
function handleRadioChange(value) {
chooseAll.value = false;
if (value == '1') {
handleGetPrescription();
}
}
// 修改后(两种模式都触发)
function handleRadioChange() {
chooseAll.value = false;
handleGetPrescription();
}
```
**修改 4 — 将 `drugType` 传递给子组件:**
```html
```
**注意**:子组件 `prescriptionList.vue` 和 `summaryMedicineList.vue` 的 `defineProps` 中需同步增加 `drugType` prop,并在各自的 API 请求参数中传入 `drugType`,后端接口 `getPrescriptionList` / `getMedicineSummary` 也需要支持 `drugType` 参数进行过滤。如果后端已支持该参数(通过其他方式传入或不需要),则前端只需加 prop + 传参即可。
### 四、路由决策
**FIXER: zhaoyun(赵云 - 前端开发)**
**REASON**: 这是纯前端 Bug——Element Plus `el-radio-button` 缺少 `label` 属性导致文字丢失,以及前端事件处理逻辑不完整导致筛选功能失效。全部修改集中在 Vue 文件(模板 + 脚本),不涉及后端接口变更(除非后端 `drugType` 参数也缺失,需 zhaoyun 修完前端后验证 API 调用是否生效,若不生效再转 guanyu 补后端参数)。
---
## 路由决策
- **修复 Agent**: zhaoyun
- **原因**: LLM 分析决策