# 情绪博物馆 Web 端 基于 Vue 3 + TypeScript + Vite 的现代化前端应用,为用户提供情绪记录和心理健康服务。 ## ✨ 特性 - 🚀 **现代化技术栈**: Vue 3.4.21 + TypeScript 5.4.2 + Vite 5.1.6 - 🎨 **优雅的UI**: Element Plus 2.6.1 + Tailwind CSS 3.4.1 - 📱 **响应式设计**: 支持桌面端和移动端 - 🔐 **完整的认证**: JWT Token + 自动刷新 - 🌐 **实时通信**: 原生WebSocket + STOMP协议 - 📊 **数据可视化**: ECharts 5.5.0 图表展示 - 🌍 **国际化**: Vue I18n 多语言支持 - 📦 **PWA支持**: 离线访问和桌面安装 - 🧪 **完整测试**: Vitest + Cypress 测试覆盖 ## 🏗️ 项目结构 ``` web-new/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API接口定义 │ ├── assets/ # 资源文件 │ ├── components/ # 通用组件 │ ├── composables/ # 组合式API │ ├── config/ # 配置文件 │ ├── i18n/ # 国际化 │ ├── layouts/ # 布局组件 │ ├── plugins/ # 插件 │ ├── router/ # 路由配置 │ ├── stores/ # 状态管理 │ ├── types/ # 类型定义 │ ├── utils/ # 工具函数 │ ├── views/ # 页面组件 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── tests/ # 测试文件 ├── .env # 环境变量 ├── package.json # 依赖配置 ├── vite.config.ts # Vite配置 └── README.md # 项目文档 ``` ## 🚀 快速开始 ### 环境要求 - Node.js >= 18.0.0 - npm >= 9.0.0 ### 安装依赖 ```bash npm install ``` ### 开发环境 ```bash npm run dev ``` ### 构建生产版本 ```bash npm run build ``` ### 预览生产版本 ```bash npm run preview ``` ## 🧪 测试 ### 运行单元测试 ```bash npm run test ``` ### 运行E2E测试 ```bash npm run test:e2e ``` ### 测试覆盖率 ```bash npm run test:coverage ``` ## 📦 核心依赖 ### 框架和工具 - **Vue 3.4.21**: 渐进式JavaScript框架 - **TypeScript 5.4.2**: 类型安全的JavaScript - **Vite 5.1.6**: 下一代前端构建工具 - **Vue Router 4.3.0**: 官方路由管理器 - **Pinia 2.1.7**: 官方状态管理库 ### UI和样式 - **Element Plus 2.6.1**: Vue 3 UI组件库 - **Tailwind CSS 3.4.1**: 实用优先的CSS框架 - **@element-plus/icons-vue**: Element Plus图标 ### 网络和通信 - **Axios 1.6.8**: HTTP客户端 - **@stomp/stompjs 7.1.1**: WebSocket STOMP协议 ### 数据可视化 - **ECharts 5.5.0**: 强大的图表库 - **vue-echarts 6.7.3**: Vue ECharts组件 ### 工具库 - **@vueuse/core 10.9.0**: Vue组合式工具集 - **Day.js 1.11.10**: 轻量级日期库 - **Lodash-es 4.17.21**: 实用工具库 ## 🔧 开发工具 ### 代码质量 - **ESLint 8.57.0**: 代码检查 - **Prettier 3.2.5**: 代码格式化 - **Husky 9.0.11**: Git钩子 - **lint-staged 15.2.2**: 暂存文件检查 ### 自动化 - **unplugin-auto-import**: 自动导入API - **unplugin-vue-components**: 自动导入组件 - **vite-plugin-pwa**: PWA支持 ### 测试 - **Vitest 1.4.0**: 单元测试框架 - **@vue/test-utils 2.4.5**: Vue组件测试工具 - **Cypress 13.7.1**: E2E测试框架 ## 🌍 环境配置 项目支持多环境配置: - **local**: 本地开发环境 - **dev**: 开发服务器环境 - **test**: 测试环境 - **prod**: 生产环境 通过 `.env` 文件配置不同环境的参数。 ## 📱 功能特性 ### 核心功能 - **AI智能对话**: 与AI助手进行情绪交流 - **情绪日记**: 记录和分析日常情绪 - **数据可视化**: 情绪趋势和统计分析 - **个人仪表盘**: 全面的个人数据展示 ### 技术特性 - **响应式设计**: 适配各种设备尺寸 - **暗色主题**: 支持明暗主题切换 - **国际化**: 中英文语言切换 - **PWA**: 支持离线访问和桌面安装 - **实时通信**: WebSocket实时消息推送 ## 🔐 安全特性 - **JWT认证**: 安全的用户认证机制 - **Token刷新**: 自动Token刷新和过期处理 - **权限控制**: 基于角色的访问控制 - **路由守卫**: 页面访问权限验证 - **XSS防护**: 内容安全策略 ## 📈 性能优化 - **代码分割**: 按需加载减少初始包大小 - **Tree Shaking**: 移除未使用的代码 - **图片优化**: 支持WebP格式和懒加载 - **缓存策略**: 合理的缓存配置 - **Gzip压缩**: 减少传输大小 ## 🤝 贡献指南 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) 文件了解详情。 ## 📞 联系我们 - 项目地址: [GitHub](https://github.com/emotion-museum/web) - 问题反馈: [Issues](https://github.com/emotion-museum/web/issues) - 邮箱: contact@emotion-museum.com --- **情绪博物馆** - 记录情绪,分享心情的温暖空间 ❤️