c77352877d
主要更新: 1. 统一所有微服务端口配置(19000-19008) 2. 为所有服务创建本地/测试/生产三套环境配置 3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025) 4. 优化网关路由配置,支持负载均衡和WebSocket 5. 新增emotion-websocket模块,支持实时聊天 6. 前端集成WebSocket,替代HTTP轮询 7. 添加配置验证和管理工具脚本 技术特性: - 完整的环境隔离和服务发现 - WebSocket实时通信支持 - 负载均衡路由配置 - 跨域和安全配置 - 自动重连和心跳检测
情绪博物馆 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
安装依赖
# 使用 npm
npm install
# 或使用 yarn
yarn install
开发环境
# 启动开发服务器
npm run dev
# 或
yarn dev
访问 http://localhost:3000 查看应用
生产构建
# 构建生产版本
npm run build
# 或
yarn build
预览生产版本
# 预览构建结果
npm run preview
# 或
yarn preview
🎨 设计系统
色彩方案
- 主色调: 渐变紫蓝色 (#667eea → #764ba2)
- 辅助色: 渐变粉红色 (#f093fb → #f5576c)
- 成功色: 渐变蓝绿色 (#4facfe → #00f2fe)
- 文字色: 深灰色系 (#2c3e50, #7f8c8d, #bdc3c7)
组件特性
- 玻璃态效果: 半透明背景 + 模糊滤镜
- 渐变按钮: 主题色渐变 + 悬停效果
- 消息气泡: 用户/AI区分设计
- 动画效果: 淡入淡出、滑动、弹跳等
📱 页面功能
首页 (Home)
- 产品介绍和特性展示
- 快速开始对话入口
- 统计数据展示
- 响应式导航菜单
聊天页面 (Chat)
- 侧边栏会话列表
- 实时消息交互
- 情绪分析集成
- 消息历史记录
- 打字状态指示
历史记录 (History)
- 会话列表管理
- 搜索和筛选功能
- 对话详情查看
- 导出和分享功能
- 统计数据概览
情绪分析 (Analysis)
- 快速文本分析
- 历史分析记录
- 情绪趋势图表
- 数据洞察建议
🔧 配置说明
环境变量
创建 .env.local 文件配置环境变量:
# API基础URL
VITE_API_BASE_URL=http://localhost:9001
# 应用标题
VITE_APP_TITLE=情绪博物馆
# 是否启用调试模式
VITE_DEBUG=true
代理配置
开发环境下,Vite会自动代理 /api 请求到后端服务:
// 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 预处理器
组件开发
<template>
<div class="component-name">
<!-- 模板内容 -->
</div>
</template>
<script setup>
import { ref, computed } from 'vue'
// 组件逻辑
</script>
<style lang="scss" scoped>
.component-name {
// 样式定义
}
</style>
API调用
import { chatApi } from '@/api/chat'
// 发送消息
const response = await chatApi.sendMessage({
userId: 'user123',
message: 'Hello',
conversationId: 'conv456'
})
🚀 部署
静态部署
构建后的 dist 目录可以部署到任何静态文件服务器:
- Nginx
- Apache
- Vercel
- Netlify
- GitHub Pages
Docker部署
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
🙏 致谢
- Vue.js - 渐进式JavaScript框架
- Ant Design Vue - 企业级UI设计语言
- Vite - 下一代前端构建工具