# ChronoMail - 时光胶囊邮箱 ## 项目简介 ChronoMail是一个基于Vue3的时光胶囊邮箱应用,用户可以撰写邮件并设定未来的发送时间,将此刻的心情、想法和祝福寄给未来的自己或他人。 ## 技术栈 - Vue 3 - Vue Router - Vant UI组件库 - Axios - Electron ## 功能特点 - 📧 撰写时光胶囊邮件 - ⏰ 设定未来发送时间 - 🌌 深空主题UI设计 - 📱 移动端适配 - 🔐 用户登录注册 - 📬 收件箱和发件箱管理 - 🕐 时间线展示 - 🤖 AI写作辅助 - 📊 数据统计 - 🎨 自定义胶囊样式 ## API接口对接 本项目已完整对接后端API,支持以下功能: ### 用户认证 - 用户注册与登录 - Token刷新机制 - 自动登录状态保持 ### 邮件管理 - 创建未来邮件 - 获取邮件列表(收件箱/发件箱/草稿箱) - 邮件详情查看 - 邮件编辑与删除 - 邮件撤销发送 ### 时光胶囊 - 胶囊视图展示 - 胶囊样式自定义 - 3D空间效果 ### AI助手 - 写作辅助 - 情感分析 - 未来预测 ### 个人空间 - 时间线展示 - 数据统计 - 用户信息管理 ### 文件上传 - 附件上传 - 头像上传 ### 推送通知 - 设备注册 - 通知设置 详细的API文档请参考:[README-API.md](./README-API.md) ## 安装和运行 ### 安装依赖 ```bash npm install ``` ### 启动开发服务器 ```bash npm run serve ``` ### 构建生产版本 ```bash npm run build ``` ### 运行Electron应用 ```bash npm run electron:serve ``` ## 项目结构 ``` src/ ├── api/ # API接口模块 │ ├── index.js # API方法集合 │ └── request.js # Axios实例和拦截器配置 ├── assets/ # 静态资源 │ └── styles/ # 样式文件 ├── components/ # 公共组件 ├── router/ # 路由配置 ├── store/ # 状态管理 ├── utils/ # 工具函数 ├── views/ # 页面组件 │ ├── Login.vue # 登录页 │ ├── Register.vue # 注册页 │ ├── Home.vue # 首页 │ ├── Compose.vue # 撰写邮件 │ ├── Inbox.vue # 收件箱 │ ├── Sent.vue # 发件箱 │ ├── Profile.vue # 个人中心 │ ├── Timeline.vue # 时间线 │ ├── CapsuleDetail.vue # 胶囊详情 │ └── ApiDemo.vue # API示例 ├── App.vue # 根组件 └── main.js # 入口文件 ``` ## 开发说明 1. 本项目使用Vue 3 Composition API 2. 使用Vant UI组件库进行界面开发 3. 使用Vue Router进行路由管理 4. 使用Axios进行HTTP请求 5. 使用Vue 3响应式API进行状态管理 6. 项目采用深空主题设计,营造时光穿梭的视觉体验 ## 环境配置 项目使用环境变量来配置不同环境的API地址: - 开发环境:`.env.development` - 生产环境:`.env.production` ```bash # 开发环境配置 VUE_APP_API_BASE_URL=http://localhost:3000/api/v1 VUE_APP_TITLE=ChronoMail - 未来邮箱 # 生产环境配置 VUE_APP_API_BASE_URL=https://api.chronomail.com/api/v1 VUE_APP_TITLE=ChronoMail - 未来邮箱 ``` ## 注意事项 - 所有API请求都会自动添加Authorization头,格式为`Bearer {token}` - 当收到401或403响应时,会自动清除用户信息并跳转到登录页 - 文件上传需要使用FormData格式 - 日期格式统一使用ISO 8601标准 - 所有状态变更都应通过相应的Actions方法进行,以保证状态一致性 ## API示例页面 项目包含一个API示例页面(`/api-demo`),展示了如何在Vue组件中使用各种API接口,包括: - 用户认证 - 邮件操作 - 胶囊管理 - AI助手调用 您可以在登录后访问该页面,查看API调用的实际效果。