77 lines
2.3 KiB
Markdown
77 lines
2.3 KiB
Markdown
# 管理师补充反馈接口问题诊断
|
||
|
||
## 问题描述
|
||
管理师端点击"修改补充反馈"时,提示"工单不存在"(400错误)
|
||
|
||
## 控制台日志分析
|
||
|
||
### 1. 加载反馈列表
|
||
```
|
||
GET /api/growth-record/daily/list?page=1&size=10&type=teacher&recordType=daily
|
||
Response: {code: 200, message: "success", data: {...}}
|
||
```
|
||
✅ 列表加载成功
|
||
|
||
### 2. 提交补充反馈
|
||
```
|
||
PUT /api/manager/feedback/teacher/{id}
|
||
Request Body: {supplement: "111", recordType: "daily"}
|
||
Response: {code: 400, message: "工单不存在", data: null}
|
||
```
|
||
❌ 提交失败
|
||
|
||
## 问题分析
|
||
|
||
### 可能原因1:接口路径不匹配
|
||
- 列表接口:`/api/growth-record/daily/list` (成长记录)
|
||
- 更新接口:`/api/manager/feedback/teacher/{id}` (反馈)
|
||
|
||
**问题**:这两个接口操作的是不同的数据表
|
||
- `growth-record` → `growth_record` 表
|
||
- `feedback` → 可能是 `feedback` 或 `work_order` 表
|
||
|
||
### 可能原因2:ID类型混淆
|
||
传递的ID是 `growth_record` 表的ID,但后端接口可能在用这个ID查找 `work_order` 表,导致找不到工单。
|
||
|
||
### 可能原因3:后端接口实现问题
|
||
后端的 `PUT /api/manager/feedback/teacher/{id}` 接口可能:
|
||
1. 先用ID查找工单(work_order表)
|
||
2. 但传入的ID是成长记录ID(growth_record表)
|
||
3. 所以查不到工单,返回"工单不存在"
|
||
|
||
## 解决方案
|
||
|
||
### 方案1:修改前端接口调用(推荐)
|
||
使用正确的成长记录更新接口:
|
||
```javascript
|
||
// 当前(错误)
|
||
managerApi.updateTeacherFeedback(id, {supplement, recordType})
|
||
|
||
// 应该改为
|
||
managerApi.updateGrowthRecord(id, {supplement, recordType})
|
||
```
|
||
|
||
对应的API定义:
|
||
```javascript
|
||
updateGrowthRecord(id, params) {
|
||
return request.put(`/api/growth-record/${id}`, params)
|
||
}
|
||
```
|
||
|
||
### 方案2:修改后端接口
|
||
让 `/api/manager/feedback/teacher/{id}` 接口支持成长记录ID
|
||
|
||
### 方案3:传递工单ID
|
||
在调用接口时,传递 `workOrderId` 而不是 `growth_record.id`
|
||
|
||
## 建议
|
||
采用**方案1**,因为:
|
||
1. 前端已经在使用 `growth-record` 接口加载数据
|
||
2. 应该使用对应的更新接口保持一致性
|
||
3. 不需要修改后端逻辑
|
||
|
||
## 下一步
|
||
1. 检查 `managerApi` 中是否有 `updateGrowthRecord` 方法
|
||
2. 如果没有,需要添加该方法
|
||
3. 修改 `feedback.vue` 中的 `submitEdit` 方法,调用正确的接口
|