Merge branch 'lyf-dev-req0003' into lyf-dev

This commit is contained in:
LYFxiaoan 2025-07-25 10:32:47 +08:00
commit 9a8ab0a43d
2 changed files with 23 additions and 0 deletions

View File

@ -351,3 +351,26 @@
- 逐一修改了 `ProductPredictionView.vue`, `StorePredictionView.vue`, 和 `GlobalPredictionView.vue`
- 在 `<script setup>` 中添加了 `formatDateTime` 辅助函数。
- 在 `<el-table-column>` 中使用 `:formatter="formatDateTime"` 属性来应用该格式化函数实现了UI显示的统一。
---
## 2025-07-24 (续): 深度调试与修复“历史预测”模块
**开发者**: Roo (AI Assistant) & lyf
### 16:00 - 阶段一:深度调试并修复“历史预测”图表渲染失败问题
- **问题现象**: “历史预测”详情页的预测趋势图始终为空白尽管后端API正常返回数据且页面下方的数据表格也能正确显示。
- **根本原因分析 (复合型问题)**:
1. **数据结构不匹配**: 前端 `HistoryView.vue` 对后端返回的数据结构处理逻辑过于复杂且存在错误,未能正确构建出图表渲染所需的数据对象。
2. **DOM渲染时序问题**: 图表容器在一个 `el-dialog` 弹窗内其渲染时机与Chart.js的初始化时机存在冲突。在弹窗动画完成前图表容器的尺寸为0导致Chart.js初始化失败。
- **最终解决方案 (彻底重构)**:
1. **后端API加固**: 统一并简化了 `/api/prediction/history/{id}` 接口的返回数据结构,确保其直接、清晰地提供前端所需的所有信息。
2. **前端实现统一**: 对 `UI/src/views/HistoryView.vue` 进行了彻底重构将其图表渲染的全部实现包括DOM结构、元素引用方式、渲染时机和函数逻辑与一个已知能正常工作的参照组件 (`ProductPredictionView.vue`) 完全同步,从根本上解决了数据处理和渲染时序的双重问题。
### 17:00 - 阶段二:修复历史数据天数被截断的问题
- **问题现象**: 在图表问题修复后发现无论预测时设置了多少天历史详情页的图表和数据总是显示被截断后的天数例如预测35天只显示7天
- **根本原因分析**: `server/api.py``predict` 函数在处理预测请求时如果前端没有传递天数参数会错误地回退到硬编码的默认值历史30天预测7天
- **解决方案 (代码与数据双重修复)**:
1. **后端代码修复**: 修改了 `server/api.py``predict` 函数,移除了默认值,强制要求前端在请求中必须提供 `future_days``history_lookback_days` 参数,确保用户的设置能被正确处理。
2. **历史数据修复**: 创建并执行了一个新的Python脚本 `fix_old_predictions.py`。该脚本遍历数据库中所有已存在的历史记录识别出被截断的数据并使用原始参数重新生成完整的预测结果覆盖掉旧的、不完整的数据文件。该脚本也经过了多次调试以处理文件编码、方法调用错误和JSON序列化等问题。
- **最终结论**: 至此,所有与“历史预测”模块相关的功能缺陷和数据一致性问题均已得到彻底解决。系统现在能够正确生成、保存、修复并完整展示所有历史预测的结果。

Binary file not shown.