# GiftBook **Repository Path**: chenyx119/gift-book ## Basic Information - **Project Name**: GiftBook - **Description**: 一个帮助用户记录和管理礼尚往来的微信小程序。通过这个小程序,用户可以轻松记录收礼、送礼等事项,更好地管理人际关系。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 礼记 GiftBook 一个帮助用户记录和管理礼尚往来的微信小程序。通过这个小程序,用户可以轻松记录收礼、送礼等事项,更好地管理人际关系。 ## 功能特点 - 礼簿管理:创建和管理不同类型的礼簿(婚礼、生日、丧事等) - 往来记录:记录收礼、送礼等往来事项,支持礼金和礼物两种类型 - 联系人管理:添加、编辑、删除联系人,支持分类管理 - 统计分析:收支趋势图表、分类统计、联系人排行 - 数据安全:密码保护、数据备份与恢复 - 主题切换:支持多种场景主题切换,自动适配不同场景的UI风格 - 其他功能:自动备份、备份提醒等 ## 技术栈 - 框架:uni-app - 开发语言:TypeScript - 状态管理:Pinia - 样式:SCSS - 数据存储:本地存储 - 图表:Canvas ## 开发环境要求 - Node.js >= 16.0.0 - pnpm >= 8.0.0 - 微信开发者工具 - HBuilderX(推荐) ## 安装和启动 1. 克隆项目 ```bash git clone [项目地址] cd giftbook-mp ``` 2. 安装依赖 ```bash pnpm install ``` 3. 启动开发服务器 ```bash pnpm dev ``` 4. 打开微信开发者工具 - 导入项目,选择项目根目录下的 `dist/dev/mp-weixin` 目录 - 填入自己的 AppID(如果没有,可以使用测试号) - 点击编译 ## 项目结构 ``` src/ ├── components/ # 公共组件 ├── pages/ # 页面文件 │ ├── index/ # 首页 │ ├── giftbook/ # 礼簿相关页面 │ ├── contact/ # 联系人相关页面 │ ├── statistics/# 统计分析页面 │ └── settings/ # 设置页面 ├── store/ # 状态管理 ├── types/ # 类型定义 ├── utils/ # 工具函数 ├── App.vue # 应用入口 ├── main.ts # 主入口 ├── manifest.json # 应用配置 └── pages.json # 页面配置 ``` ## 核心功能 ### 1. 礼簿管理 - 创建礼簿:支持婚礼、生日、丧事等多种类型 - 礼簿详情:查看礼簿基本信息、总金额等 - 往来记录:记录收礼、送礼等事项 - 记录管理:支持添加、编辑、删除记录 - 主题适配:根据礼簿类型自动切换主题风格,包括: - 婚礼场景:喜庆的红色主题 (#FF4D4F),搭配金色装饰元素 - 白事场景:庄重的深蓝色主题 (#2c3e50),搭配素雅设计 - 生日场景:喜庆的红色主题 (#FF4D4F),搭配活泼元素 - 升学场景:清新的蓝色主题 (#1890FF),搭配学术元素 - 商务场景:专业的紫色主题 (#722ED1),搭配商务元素 - 乔迁场景:生机的绿色主题 (#52C41A),搭配现代简约元素 - 满月场景:柔和的粉色主题 (#F759AB),搭配可爱元素 - 其他场景:清爽的青色主题 (#13C2C2),搭配通用元素 ### 2. 往来记录 - 支持单笔添加和批量添加 - 记录类型:收礼、送礼 - 姓名:支持手填和从联系人列表中选择,支持模糊搜索。如果联系人列表没有此人,则创建往来记录时新建联系人。 - 礼金:只能输入数字(支持小数),单位为元。 - 礼品:手填 - 备注 - 时间记录:自动记录创建和更新时间 - 数据统计:自动计算总金额 ### 3. 联系人管理 - 联系人列表:管理所有相关联系人 - 联系人分类:按关系分类(如亲戚、朋友、同事等) - 联系人详情:查看与特定联系人的所有往来记录 ### 4. 统计分析 - 收支统计:统计收礼和送礼的总金额 - 往来分析:分析人情往来的频率和趋势 - 数据可视化:通过图表展示数据 ### 5. 数据管理 - 数据备份:支持数据导出和备份 - 数据恢复:支持数据导入和恢复 - 隐私保护:支持数据加密存储 - 主题设置:支持手动切换红白喜事风格,包括: - 全局主题切换:一键切换所有页面的主题风格 - 场景适配:根据礼簿类型自动匹配对应主题 - 自定义主题:支持用户自定义主题颜色和样式 ## 技术架构 ### 前端技术栈 - 框架:uni-app - 开发语言:Vue 3 + TypeScript - UI框架:uView UI - 状态管理:Pinia - 数据存储: - 本地存储:uni.storage(用于存储用户数据) - 文件存储:uni.saveFile(用于存储图片等媒体文件) - 数据导出:uni.downloadFile(用于数据备份) ### 数据存储方案 1. **本地数据存储** - 使用uni.storage存储核心数据 - 数据结构设计: ```typescript interface StorageData { contacts: Contact[]; // 联系人列表 giftBooks: GiftBook[]; // 礼簿列表 settings: Settings; // 用户设置 } ``` 2. **数据备份方案** - 导出Excel文件,包含以下工作表: - 联系人表:包含联系人基本信息、分类等 - 礼簿表:包含礼簿基本信息、类型等 - 记录表:包含往来记录详细信息 - 支持Excel文件导入,自动解析并更新数据 - 定期自动备份提醒 - 支持选择性导出(可按时间范围、类型等筛选) 3. **数据安全** - 使用uni.setStorageSync加密存储敏感数据 - 支持设置访问密码 - 支持Excel文件加密导出 - 导入时进行数据格式验证 ## 开发规范 1. 使用Vue 3 Composition API进行开发 2. 使用TypeScript进行类型检查 3. 遵循uni-app的跨平台开发规范 4. 使用rpx作为样式单位 5. 组件化开发,提高代码复用性 6. 统一的代码风格和命名规范 ## 注意事项 1. 注意本地存储容量限制(一般为10MB) 2. 定期提醒用户备份数据 3. 优化数据存储结构,避免数据冗余 4. 注意性能优化,避免频繁读写存储 5. 做好错误处理和异常捕获 6. 注意数据迁移和版本兼容性 7. Excel导入导出时注意数据格式验证 8. 大文件导入导出时注意性能优化 ## 后续规划 1. 添加更多数据分析功能 2. 支持多设备同步 3. 添加社交分享功能 4. 支持自定义提醒规则 5. 添加更多数据可视化图表 ## 开发环境要求 - HBuilderX 3.0+ - 微信开发者工具