# 生日提醒小程序 一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。 ## 📋 功能特性 ### 核心功能 1. **人员信息管理** - 添加、编辑、删除人员信息 - 支持姓名、昵称、备注、头像 - 快速搜索和筛选 2. **纪念日管理** - 支持公历和农历生日 - 多种纪念日类型(生日、结婚纪念日、订婚纪念日等) - 自定义纪念日类型 - 设置重要程度(非常重要/重要/一般) 3. **智能提醒** - 灵活设置提醒时间(提前3/7/14/30天或自定义) - 支持开启/关闭提醒 - 近期纪念日一目了然 4. **日历视图** - 月历展示所有纪念日 - 本月纪念日列表 - 快速跳转到指定日期 5. **数据管理** - 导出数据备份(复制到剪贴板) - 导入数据恢复 - 清空所有数据 ## 🚀 快速开始 ### 环境要求 - 微信开发者工具 - Node.js(如果需要) ### 安装步骤 1. **克隆或下载项目** ```bash git clone <项目地址> cd 生日提醒小程序 ``` 2. **打开微信开发者工具** - 打开微信开发者工具 - 选择"导入项目" - 选择项目目录 - AppID填写:`touristappid`(测试号) 3. **运行项目** - 点击"编译"按钮 - 在模拟器中查看效果 ### 配置说明 #### app.json 配置 - `pages`: 页面路径配置 - `tabBar`: 底部导航栏配置 - `window`: 窗口配置 #### project.config.json 配置 - 根据实际开发需求修改 `appid` ## 📁 项目结构 ``` 生日提醒小程序/ ├── app.js # 小程序入口文件 ├── app.json # 全局配置 ├── app.wxss # 全局样式 ├── project.config.json # 项目配置 ├── sitemap.json # 站点地图 ├── pages/ # 页面目录 │ ├── index/ # 首页(人员列表) │ ├── person-detail/ # 人员详情 │ ├── add-person/ # 添加/编辑人员 │ ├── add-anniversary/ # 添加/编辑纪念日 │ ├── calendar/ # 日历视图 │ └── settings/ # 设置页面 └── utils/ # 工具类 ├── storage.js # 数据存储 ├── lunar.js # 农历转换 └── date.js # 日期工具 ``` ## 🎨 页面功能说明 ### 1. 首页(人员列表) - 显示所有已添加的人员 - 搜索和筛选功能 - 显示最近的纪念日和倒计时 - 浮动按钮快速添加 ### 2. 人员详情页 - 展示人员完整信息 - 显示该人员的所有纪念日 - 编辑和删除操作 ### 3. 添加人员页 - 输入姓名、昵称、备注 - 上传头像 - 保存到本地存储 ### 4. 添加纪念日页 - 选择关联人员 - 选择纪念日类型 - 选择日期(公历/农历) - 设置重要程度 - 配置提醒设置 ### 5. 日历页 - 月历视图 - 标记有纪念日的日期 - 本月纪念日列表 ### 6. 设置页 - 导出/导入数据 - 清空数据 - 关于信息 ## 💾 数据存储 项目使用微信小程序的本地存储功能: - `wx.getStorageSync()` - 同步读取数据 - `wx.setStorageSync()` - 同步存储数据 - 最大存储容量:10MB 数据结构: ```javascript // 人员数据 { id: String, name: String, nickname: String, avatar: String, remark: String, createTime: Number, updateTime: Number } // 纪念日数据 { id: String, personId: String, type: String, customTypeName: String, isLunar: Boolean, solarYear: Number, solarMonth: Number, solarDay: Number, importance: String, remindEnabled: Boolean, remindDays: Number, remark: String, createTime: Number, updateTime: Number } ``` ## ⚠️ 注意事项 1. **农历功能** - 当前使用简化版的农历转换算法 - 建议使用成熟的农历库(如 `lunar-javascript`)替换 2. **提醒功能** - 小程序不支持后台定时任务 - 需要在前台运行时才能触发提醒 - 建议使用云开发或服务器来实现真正的推送通知 3. **数据备份** - 导出功能会将数据复制到剪贴板 - 建议定期导出备份,防止数据丢失 - 导入时会覆盖现有数据 4. **头像上传** - 当前使用本地临时路径 - 如需持久化,需要上传到云存储或服务器 ## 🔧 开发建议 ### 功能扩展 1. **农历转换优化** - 使用 `lunar-javascript` 库 - 实现准确的农历转公历计算 2. **提醒功能增强** - 使用云开发或后端服务 - 实现真正的推送通知 - 支持定时提醒 3. **数据同步** - 添加云存储支持 - 多设备数据同步 - 数据加密 4. **UI优化** - 添加更多的图标资源 - 优化动画效果 - 支持暗色模式 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 联系方式 如有问题或建议,请提交 Issue。 --- **最后更新**: 2024年 **版本**: v1.0.0