Files
2025-10-26 19:29:30 +08:00

226 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生日提醒小程序
一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。
## 📋 功能特性
### 核心功能
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