Initial Commit

This commit is contained in:
yuming
2025-10-26 19:29:30 +08:00
commit 6747ade9c4
33 changed files with 4387 additions and 0 deletions
+225
View File
@@ -0,0 +1,225 @@
# 生日提醒小程序
一款轻量级、易用的个人纪念日管理小程序,帮助用户记录和提醒重要的生日、节日和纪念日。
## 📋 功能特性
### 核心功能
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