90 lines
3.2 KiB
Markdown
90 lines
3.2 KiB
Markdown
# Bug #733 诸葛亮分析报告
|
||
|
||
> **文档类型**: Bug分析
|
||
> **分析时间**: 2026-06-13 00:22:15
|
||
> **分析模型**: mimo-v2.5 (LLM深度分析)
|
||
|
||
---
|
||
|
||
## 基本信息
|
||
- **Bug #**: 733
|
||
- **标题**: 【目录管理-诊疗目录】点击“编辑”按钮报错,且无法弹出编辑窗口进行数据修改
|
||
- **模块**: 系统管理
|
||
- **提出人**: 陈显精
|
||
|
||
---
|
||
|
||
根因完全定位。分析结果如下:
|
||
|
||
---
|
||
|
||
## 一、Bug 理解
|
||
|
||
**禅道 Bug #733**:【目录管理-诊疗目录】点击"编辑"按钮报错,且无法弹出编辑窗口进行数据修改
|
||
|
||
- **重现步骤**:登录系统 → 系统管理 > 目录管理 > 诊疗目录 → 选择任意行 → 点击【编辑】
|
||
- **结果**:页面无响应,顶部红色报错:`No static resource data-dictionary/diagnosis-treatment/information-one for request '/healthlink-his/data-dictionary/diagnosis-treatment/information-one/'.`
|
||
- **期望**:弹出"编辑诊疗项目"窗口,正确回显数据供修改
|
||
|
||
**综合**:用户在诊疗目录列表点击编辑时,前端请求后端获取详情接口失败,报 404 静态资源错误,编辑弹窗无法打开。根因是前端 API URL 写法有误。
|
||
|
||
---
|
||
|
||
## 二、根因分析
|
||
|
||
**根因:`getDiagnosisTreatmentOne` 函数的 URL 末尾多了一个 `/`(trailing slash)**
|
||
|
||
对比代码:
|
||
|
||
| 文件 | 行 | URL | 状态 |
|
||
|---|---|---|---|
|
||
| `diagnosistreatment.js:15` | 编辑用 | `'/data-dictionary/diagnosis-treatment/information-one/'` | ❌ 多了 `/` |
|
||
| `implementDepartment.js:65` | 同功能 | `'/data-dictionary/diagnosis-treatment/information-one?id=' + id` | ✅ 正确 |
|
||
| `disease.js:15` | 类似目录 | `'/data-dictionary/disease/information-one'` | ✅ 正确 |
|
||
| `device.js:15` | 类似目录 | `'/data-dictionary/device/information-one'` | ✅ 正确 |
|
||
|
||
**后端 Controller** (`DiagnosisTreatmentController.java`) 定义:
|
||
```java
|
||
@GetMapping("/information-one")
|
||
public R<?> getDiseaseTreatmentOne(@RequestParam Long id)
|
||
```
|
||
|
||
**请求链路**:
|
||
1. `getDiagnosisTreatmentOne(row.id)` → Axios 拼接 URL
|
||
2. Axios 将 `params: {id}` 作为 query string 追加
|
||
3. 因 URL 以 `/` 结尾,实际请求变成:`/healthlink-his/data-dictionary/diagnosis-treatment/information-one/?id=xxx`
|
||
4. Spring Boot 将 `/information-one/` 解析为**目录路径**,查找静态资源,返回 404 `No static resource`
|
||
|
||
**涉及文件**(仅 1 个文件需修改):
|
||
- `healthlink-his-ui/src/views/catalog/diagnosistreatment/components/diagnosistreatment.js:15`
|
||
|
||
---
|
||
|
||
## 三、修复方案
|
||
|
||
**修改 `diagnosistreatment.js` 第 15 行,去掉 URL 末尾的 `/`:**
|
||
|
||
```diff
|
||
- url: '/data-dictionary/diagnosis-treatment/information-one/',
|
||
+ url: '/data-dictionary/diagnosis-treatment/information-one',
|
||
```
|
||
|
||
仅此一处修改,前后端代码风格一致,后端无需任何改动。
|
||
|
||
---
|
||
|
||
## 四、路由决策
|
||
|
||
**FIXER: zhaoyun(赵云)**
|
||
|
||
**REASON**: 纯前端 API URL 拼写错误,后端接口正常(`/information-one` 映射正确),只需前端修复一个字符,赵云负责前端开发最合适。
|
||
|
||
---
|
||
|
||
## 路由决策
|
||
- **FIXER_ID**: zhaoyun
|
||
- **修复 Agent**: zhaoyun(前端)
|
||
- **原因**: LLM 分析决策
|
||
|
||
> ⚠️ 修复人员请先验证以上分析是否正确,再执行修复。
|