# 情绪博物馆 Web 前端
一个基于 Vue 3 + Ant Design Vue 的现代化情绪分析和AI对话前端应用。
## ✨ 特性
- 🎨 **现代化UI设计** - 采用渐变色彩和玻璃态效果,提供优雅的视觉体验
- 🤖 **AI智能对话** - 与AI助手进行自然流畅的对话交流
- 📊 **情绪分析** - 实时分析用户情绪状态,提供专业的心理健康评估
- 📱 **响应式设计** - 完美适配桌面端和移动端设备
- 🔄 **实时交互** - 支持实时消息推送和状态更新
- 📈 **数据可视化** - 情绪趋势图表和统计分析
- 🎯 **用户体验** - 流畅的动画效果和交互反馈
## 🛠️ 技术栈
- **框架**: Vue 3 (Composition API)
- **UI库**: Ant Design Vue 4.x
- **路由**: Vue Router 4
- **状态管理**: Pinia
- **构建工具**: Vite
- **样式**: SCSS
- **HTTP客户端**: Axios
- **时间处理**: Day.js
- **图标**: Ant Design Icons
## 📦 项目结构
```
web/
├── public/ # 静态资源
├── src/
│ ├── api/ # API接口
│ │ ├── request.js # 请求封装
│ │ └── chat.js # 聊天相关API
│ ├── components/ # 公共组件
│ │ ├── EmotionAnalysis.vue # 情绪分析组件
│ │ ├── HistoryPanel.vue # 历史记录面板
│ │ ├── ConversationDetail.vue # 对话详情
│ │ └── EmotionTrends.vue # 情绪趋势图表
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ │ ├── user.js # 用户状态
│ │ └── chat.js # 聊天状态
│ ├── styles/ # 全局样式
│ ├── utils/ # 工具函数
│ ├── views/ # 页面组件
│ │ ├── Home.vue # 首页
│ │ ├── Chat.vue # 聊天页面
│ │ ├── History.vue # 历史记录页面
│ │ └── Analysis.vue # 情绪分析页面
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── index.html # HTML模板
├── package.json # 依赖配置
├── vite.config.js # Vite配置
└── README.md # 项目说明
```
## 🚀 快速开始
### 环境要求
- Node.js >= 16.0.0
- npm >= 8.0.0 或 yarn >= 1.22.0
### 安装依赖
```bash
# 使用 npm
npm install
# 或使用 yarn
yarn install
```
### 开发环境
```bash
# 启动开发服务器
npm run dev
# 或
yarn dev
```
访问 http://localhost:3000 查看应用
### 生产构建
```bash
# 构建生产版本
npm run build
# 或
yarn build
```
### 预览生产版本
```bash
# 预览构建结果
npm run preview
# 或
yarn preview
```
## 🎨 设计系统
### 色彩方案
- **主色调**: 渐变紫蓝色 (#667eea → #764ba2)
- **辅助色**: 渐变粉红色 (#f093fb → #f5576c)
- **成功色**: 渐变蓝绿色 (#4facfe → #00f2fe)
- **文字色**: 深灰色系 (#2c3e50, #7f8c8d, #bdc3c7)
### 组件特性
- **玻璃态效果**: 半透明背景 + 模糊滤镜
- **渐变按钮**: 主题色渐变 + 悬停效果
- **消息气泡**: 用户/AI区分设计
- **动画效果**: 淡入淡出、滑动、弹跳等
## 📱 页面功能
### 首页 (Home)
- 产品介绍和特性展示
- 快速开始对话入口
- 统计数据展示
- 响应式导航菜单
### 聊天页面 (Chat)
- 侧边栏会话列表
- 实时消息交互
- 情绪分析集成
- 消息历史记录
- 打字状态指示
### 历史记录 (History)
- 会话列表管理
- 搜索和筛选功能
- 对话详情查看
- 导出和分享功能
- 统计数据概览
### 情绪分析 (Analysis)
- 快速文本分析
- 历史分析记录
- 情绪趋势图表
- 数据洞察建议
## 🔧 配置说明
### 环境变量
创建 `.env.local` 文件配置环境变量:
```env
# API基础URL
VITE_API_BASE_URL=http://localhost:9001
# 应用标题
VITE_APP_TITLE=情绪博物馆
# 是否启用调试模式
VITE_DEBUG=true
```
### 代理配置
开发环境下,Vite会自动代理 `/api` 请求到后端服务:
```javascript
// vite.config.js
export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://localhost:9001',
changeOrigin: true
}
}
}
})
```
## 🎯 核心功能
### 状态管理
使用 Pinia 管理应用状态:
- **用户状态**: 用户信息、登录状态
- **聊天状态**: 会话列表、当前对话、消息记录
### API集成
- 统一的请求封装和错误处理
- 自动重试和超时控制
- 请求/响应拦截器
- 加载状态管理
### 响应式设计
- 移动端优先设计
- 断点适配 (768px, 1024px, 1200px)
- 触摸友好的交互
- 自适应布局
## 🔍 开发指南
### 代码规范
- 使用 ESLint + Prettier 进行代码格式化
- 组件命名采用 PascalCase
- 文件命名采用 kebab-case
- 样式使用 SCSS 预处理器
### 组件开发
```vue
```
### API调用
```javascript
import { chatApi } from '@/api/chat'
// 发送消息
const response = await chatApi.sendMessage({
userId: 'user123',
message: 'Hello',
conversationId: 'conv456'
})
```
## 🚀 部署
### 静态部署
构建后的 `dist` 目录可以部署到任何静态文件服务器:
- Nginx
- Apache
- Vercel
- Netlify
- GitHub Pages
### Docker部署
```dockerfile
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
## 🤝 贡献指南
1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🙏 致谢
- [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架
- [Ant Design Vue](https://antdv.com/) - 企业级UI设计语言
- [Vite](https://vitejs.dev/) - 下一代前端构建工具