GloryAI Hackathon 前端项目。
目标是让用户上传面部照片后,展示 AI 皮肤分析报告与分层产品推荐。
- Vite
- React 19
- Tailwind CSS
- JavaScript
GloryAI/
├─ GloryAI_frontend/ # 前端项目目录
│ ├─ src/
│ │ ├─ components/ # 页面与业务组件
│ │ ├─ services/ # API 抽象与 mock 数据
│ │ ├─ utils/ # 皮肤分析逻辑
│ │ └─ App.jsx # 状态机入口(upload/analyzing/report)
│ ├─ public/
│ └─ package.json
├─ ProductManagment/ # PRD、开发计划、执行记录、测试文档
└─ README.md
cd GloryAI_frontend
npm install
npm run dev -- --host访问:http://localhost:5173
cd GloryAI_frontend
npm run build打包产物输出到:GloryAI_frontend/dist/
当前通过 src/services/api.js 切换数据源:
USE_MOCK = true:使用src/services/mockData.jsUSE_MOCK = false:请求后端接口(API_BASE_URL)
这一节给后端联调用,目标是明确“后端需要返回什么、前端在哪里接、如何本地联调”。
- 接收前端上传图片
- 接口建议:
POST /api/analyze - 请求格式:
multipart/form-data - 文件字段名:
image(见src/services/api.js)
- 返回分析成功 JSON
- 返回错误情况
- 如:非人脸、多人脸、图像质量差、文件格式错误、服务异常。
- 当前前端接收错误的位置:
GloryAI_frontend/src/services/api.js的analyzeSkin(imageFile)- 请求返回
response.ok === false时抛出错误,进入失败流
- 请求返回
GloryAI_frontend/src/App.jsx的handleAnalyze(file)中catch- 接收
api.js抛出的错误并设置error,页面回到上传页展示错误提示
- 接收
- 建议后端错误响应返回可读文案字段(例如
error),便于前端直接展示。 - HTTP 状态码建议:
400:参数/文件错误422:可解析但业务不可用(如无人脸)500:服务内部错误
- 请求入口:
GloryAI_frontend/src/services/api.js
analyzeSkin(imageFile)是唯一对后端的调用入口。- 真实联调时:
USE_MOCK = falseAPI_BASE_URL改成后端地址(如http://localhost:8000/api)
- 调用发起处:
GloryAI_frontend/src/App.jsx
- 用户点击“开始分析”后,
handleAnalyze调用analyzeSkin(file)。 - 成功后进入报告页;失败会显示错误信息并回到上传页。
- 响应消费位置:
GloryAI_frontend/src/utils/skinAnalysis.js
- 解析
skin_analysis并生成:skinTypetopIssuessummary
- 规则:
severity = 100 - ui_score(分数越低问题越严重)。
- 前端运行(WSL 或本机终端):
cd GloryAI_frontend
npm install
npm run dev -- --host- 前端地址:
http://localhost:5173
- 后端需要允许跨域(若前后端不同端口):
- 允许来源:
http://localhost:5173 - 允许方法至少包含:
POST - 允许
multipart/form-data
- 联调步骤:
- 启动后端服务(例如
http://localhost:8000) - 在
src/services/api.js设置:USE_MOCK = falseAPI_BASE_URL = "http://localhost:8000/api"
- 前端上传真实图片测试:
- 正常人脸
- 非人脸图片
- 错误格式文件
- 验证成功/错误 JSON 均能被前端正确处理
- 上传 -> 分析中 -> 报告页 流程已打通
- 报告与推荐卡片基于 mock 数据渲染
- 前后端联调时只需切换
USE_MOCK与后端地址
.agents/已从版本控制移除并在.gitignore中忽略- 详细执行过程见:
ProductManagment/0214/前端执行记录.md