ddcfe3334e529b7435f3efb1b40bab91ce6b04f5
部署到群晖 / deploy (push) Successful in 44s
- Phase 1: 添加纪念日合并人物创建流程(方案 B) - Phase 2: 农历提醒按 lunarMonth/Day 计算每年公历 - Phase 3: 人员数据同步到后端(新增 /api/person) - Phase 4: 新设备启动从云端恢复数据 - Phase 5: 工具函数收敛 utils/format.js - Phase 6: 同步失败入队 + 启动重试 - Phase 7: 闰月生日完整支持(含 isLeapMonth + UI 警示) - 修复 lunarInfo 数据表错位(替换为权威源 jjonline/calendar.js) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
生日提醒小程序
一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。
📋 功能特性
核心功能
-
人员信息管理
- 添加、编辑、删除人员信息
- 支持姓名、昵称、备注、头像
- 快速搜索和筛选
-
纪念日管理
- 支持公历和农历生日
- 多种纪念日类型(生日、结婚纪念日、订婚纪念日等)
- 自定义纪念日类型
- 设置重要程度(非常重要/重要/一般)
-
智能提醒
- 灵活设置提醒时间(提前3/7/14/30天或自定义)
- 支持开启/关闭提醒
- 近期纪念日一目了然
-
日历视图
- 月历展示所有纪念日
- 本月纪念日列表
- 快速跳转到指定日期
-
数据管理
- 导出数据备份(复制到剪贴板)
- 导入数据恢复
- 清空所有数据
🚀 快速开始
环境要求
- 微信开发者工具
- Node.js(如果需要)
安装步骤
-
克隆或下载项目
git clone <项目地址> cd 生日提醒小程序 -
打开微信开发者工具
- 打开微信开发者工具
- 选择"导入项目"
- 选择项目目录
- AppID填写:
touristappid(测试号)
-
运行项目
- 点击"编译"按钮
- 在模拟器中查看效果
配置说明
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
数据结构:
// 人员数据
{
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
}
⚠️ 注意事项
-
农历功能
- 当前使用简化版的农历转换算法
- 建议使用成熟的农历库(如
lunar-javascript)替换
-
提醒功能
- 小程序不支持后台定时任务
- 需要在前台运行时才能触发提醒
- 建议使用云开发或服务器来实现真正的推送通知
-
数据备份
- 导出功能会将数据复制到剪贴板
- 建议定期导出备份,防止数据丢失
- 导入时会覆盖现有数据
-
头像上传
- 当前使用本地临时路径
- 如需持久化,需要上传到云存储或服务器
🔧 开发建议
功能扩展
-
农历转换优化
- 使用
lunar-javascript库 - 实现准确的农历转公历计算
- 使用
-
提醒功能增强
- 使用云开发或后端服务
- 实现真正的推送通知
- 支持定时提醒
-
数据同步
- 添加云存储支持
- 多设备数据同步
- 数据加密
-
UI优化
- 添加更多的图标资源
- 优化动画效果
- 支持暗色模式
📄 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📞 联系方式
如有问题或建议,请提交 Issue。
最后更新: 2024年 版本: v1.0.0
Description
Languages
JavaScript
99.6%
Dockerfile
0.4%