**日期**: 2025-07-18 **主题**: 统一训练页面UI显示并修复后端数据传递 ### 问题描述 1. 在“按店铺训练”和“全局模型训练”页面的任务列表中,模型版本号前缺少 'v' 前缀,与“按品训练”页面不一致。 2. 在“全局模型训练”页面的任务列表中,“聚合方式”一列始终为空,无法显示数据。 ### 根本原因 1. **UI层面**: `UI/src/views/StoreTrainingView.vue` 和 `UI/src/views/training/GlobalTrainingView.vue` 在渲染版本号时,没有像 `ProductTrainingView.vue` 一样添加 'v' 前缀的模板。 2. **后端层面**: `server/utils/training_process_manager.py` 中的 `TrainingTask` 数据类缺少 `aggregation_method` 字段,导致从任务提交到数据返回的整个流程中,该信息都丢失了。 ### 解决方案 1. **修复前端UI**: * **文件**: `UI/src/views/StoreTrainingView.vue`, `UI/src/views/training/GlobalTrainingView.vue` * **操作**: 修改了 `el-table-column` for `version`,为其添加了 `<template>`,使用 `<el-tag>v{{ row.version }}</el-tag>` 来渲染版本号,确保了显示格式的统一。 2. **修复后端数据流**: * **文件**: `server/utils/training_process_manager.py` * **操作**: 1. 在 `TrainingTask` 数据类中增加了 `aggregation_method: Optional[str] = None` 字段。 2. 修改 `submit_task` 方法,使其在创建 `TrainingTask` 对象时能接收并设置 `aggregation_method`。 3. 修改 `run_training_task` 方法,在调用 `predictor.train_model` 时,将 `task.aggregation_method` 传递下去。 ### 最终结果 通过前后端的协同修复,现在所有训练页面的UI表现完全一致,并且全局训练的“聚合方式”能够被正确记录和显示。
药店销售预测系统 - 前端界面
这是一个使用 Vue 3, Vite, Element Plus 和 Vue Router 构建的前端管理界面,用于与药店销售预测系统的后端API进行交互。
功能模块
- 首页: 系统功能概览和快捷入口。
- 数据管理: 浏览产品数据,上传新的销售数据Excel文件。
- 模型训练: 选择产品和模型类型,启动异步训练任务,并实时查看任务状态。
- 模型预测: 对指定产品进行销售预测,支持单模型预测和多模型效果对比,并提供可视化图表。
- 模型管理: 查看、筛选、搜索、导入、导出和删除已训练的模型。
技术栈
- Vue 3: 渐进式JavaScript框架。
- Vite: 下一代前端开发与构建工具。
- Vue Router: Vue.js 的官方路由。
- Element Plus: 基于 Vue 3 的桌面端组件库。
- Axios: 一个基于 promise 的 HTTP 库。
- Chart.js: 用于数据可视化的JavaScript图表库。
安装和运行
前提条件
步骤
-
进入UI目录
cd UI
-
安装依赖 使用 npm:
npm install
或者使用 pnpm:
pnpm install
或者使用 yarn:
yarn
-
启动开发服务器
npm run dev
该命令会启动一个本地开发服务器,你可以在浏览器中访问
http://localhost:5173
(或终端提示的其他端口) 来查看界面。重要:
- 请确保后端的Flask API服务正在运行中。
- Vite配置文件中已设置了代理,所有
/api
开头的请求都会被转发到http://127.0.0.1:5000
。
-
构建生产版本
npm run build
该命令会将项目打包到
dist
目录,用于生产环境部署。