226 lines
5.0 KiB
Markdown
226 lines
5.0 KiB
Markdown
# 生日提醒小程序
|
||
|
||
一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。
|
||
|
||
## 📋 功能特性
|
||
|
||
### 核心功能
|
||
|
||
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
|
||
|