# 🐾 宠物档案与健康管理小程序 — 产品功能设计 > **项目名称:**FurBall > > 中文名称:毛球手账 ## 一、产品定位与目标用户 | 维度 | 定义 | | ------------ | ------------------------------------------------------------ | | **产品定位** | 面向养宠人士的轻量级宠物健康管家,核心解决"忘记打疫苗、驱虫时间混乱、病历散落"三大痛点 | | **目标用户** | 25-40岁城市养宠人群,以猫狗为主,注重宠物健康管理但嫌传统App太复杂 | | **核心价值** | 让宠物健康管理像记账一样简单,关键时刻(如就医、托运)一键调出完整档案 | --- ## 二、功能架构总览 ``` ├── 首页(Dashboard) ├── 宠物档案(Pet Profile) │ ├── 基础信息管理 │ ├── 健康档案 │ └── 成长记录 ├── 健康日程(Health Schedule) │ ├── 疫苗管理 │ ├── 驱虫管理 │ ├── 体检提醒 │ └── 自定义提醒 ├── 发现/社区(Discovery) │ ├── 附近医院 │ ├── 养宠百科 │ └── 丢失宠物启事(可选) ├── 我的(Profile) │ ├── 多宠物切换 │ ├── 数据导出 │ └── 会员中心 └── 消息中心(Notifications) ``` --- ## 三、核心功能模块详细设计 ### 模块一:宠物档案管理(Pet Profile) #### 1.1 基础信息卡片 | 字段 | 类型 | 说明 | | --------- | ------- | ---------------------------------------- | | 宠物昵称 | String | 必填,2-10字 | | 宠物类型 | Enum | 猫/狗/其他(兔、仓鼠、鸟、爬宠等) | | 品种 | String | 二级联动选择,如狗→金毛/柯基/柴犬 | | 性别 | Enum | 公/母/未知 | | 出生日期 | Date | 用于计算年龄,支持"不知道具体日期,估算" | | 体重 | Number | kg,支持历史记录曲线 | | 毛色/特征 | String | 用于丢失启事描述 | | 绝育状态 | Boolean | 是/否/未计划 | | 头像 | Image | 支持相册选择或拍照 | **产品细节**: - 首次进入强制创建至少一只宠物档案 - 支持多宠物管理,首页可左右滑动切换 - 年龄自动计算并显示"3岁2个月"格式 - 体重输入后自动生成趋势图(近6个月) #### 1.2 健康档案(核心差异化功能) | 子功能 | 描述 | | ------------ | ------------------------------------------------------------ | | **疫苗记录** | 记录每次疫苗:名称(如妙三多、狂犬)、批次号、接种日期、下次接种日期、接种医院、医生、疫苗证照片上传 | | **驱虫记录** | 内驱/外驱/内外同驱分类,品牌(大宠爱、福来恩等),使用日期,下次日期 | | **病历记录** | 就诊时间、医院、主诉、诊断结果、医嘱、用药清单、检查报告照片(支持多张)、费用 | | **体检报告** | 年度体检数据归档,支持PDF/图片上传 | | **过敏史** | 食物过敏、药物过敏、环境过敏标签 | | **紧急信息** | 血型(如有)、慢性病、正在服用的药物 | **产品细节**: - 每条记录支持**时间轴**展示,按时间倒序 - 疫苗记录可生成「电子免疫证」,模拟真实疫苗本样式,方便给宠物店/托运公司查看 - 病历支持 OCR 识别医院小票/处方单(增值功能) - 所有记录支持**导出为PDF**(会员功能) #### 1.3 成长记录(情感向功能) - 体重变化曲线图 - 身高/体长记录(可选) - 里程碑事件(第一次洗澡、第一次出门、换牙等) - 相册时间轴(按宠物维度聚合照片) --- ### 模块二:健康日程与智能提醒(Health Schedule) 这是**最高频使用**的功能,也是用户留存的核心。 #### 2.1 疫苗提醒 | 功能点 | 设计 | | ---------- | ------------------------------------------------------------ | | 预设方案 | 根据宠物类型和年龄自动推荐疫苗方案(如幼猫3针妙三多+1针狂犬) | | 自定义方案 | 用户可手动调整 | | 提醒逻辑 | 到期前7天、3天、当天分别推送订阅消息 | | 完成确认 | 用户标记"已完成"后自动计算下次时间 | #### 2.2 驱虫提醒 | 功能点 | 设计 | | -------- | -------------------------------------------------- | | 频率设置 | 内驱(3月/次)、外驱(1月/次),根据品牌推荐默认值 | | 季节模式 | 夏季自动缩短外驱间隔(可选智能建议) | | 提醒方式 | 同疫苗,支持微信订阅消息 | #### 2.3 自定义提醒 - 洗澡、剪指甲、换粮、买粮、体内外驱分开提醒等 - 支持循环周期(每N天/周/月) - 支持一次性提醒(如预约了绝育手术) #### 2.4 日程看板(首页核心) ``` ┌─────────────────────────────┐ │ 今日日程 │ │ 🐱 咪咪 — 外驱(大宠爱) │ │ 已逾期2天 ⚠️ │ │ 🐶 旺财 — 狂犬疫苗(第2年) │ │ 还有5天 │ ├─────────────────────────────┤ │ 本周待办(3) │ │ 本月已完成(5) │ └─────────────────────────────┘ ``` **产品细节**: - 逾期事项红色高亮,点击直达记录页面 - 完成操作后弹出「成就卡片」,可分享朋友圈 - 连续按时完成N次获得徽章(游戏化) --- ### 模块三:附近服务(LBS Discovery) #### 3.1 附近宠物医院 | 功能 | 说明 | | ------------ | ---------------------------------------------- | | 地图模式 | 基于腾讯位置服务,显示3km/5km/10km内医院 | | 列表模式 | 距离排序,显示评分、营业时间、是否24小时 | | 医院档案 | 名称、地址、电话、营业时间、特色科室、用户评价 | | 一键导航 | 唤起腾讯地图/高德地图 | | 我的就诊记录 | 关联到该医院的病历自动聚合 | **数据来源**: - MVP阶段:手动录入种子数据(你所在城市50家医院) - 增长阶段:UGC 允许用户添加/纠错,审核后展示 #### 3.2 养宠百科(内容运营) - 按宠物类型分类的科普文章(疫苗知识、驱虫指南、常见疾病) - 搜索功能(如"猫咪呕吐怎么办") - 症状自查工具(决策树:症状→可能原因→建议就医/观察) #### 3.3 宠物丢失启事(社区功能,可选) - 发布丢失信息:宠物照片、特征、丢失地点、时间、联系方式 - 基于地理位置推送给附近用户 - 发现宠物者可点击「我看见了」上传位置 - **注意**:需接入微信内容安全API审核,避免诈骗 --- ### 模块四:数据与个性化(My Profile) #### 4.1 多宠物管理 - 支持创建最多3只宠物(免费版)/ 无限(会员版) - 快速切换:首页顶部宠物头像Tab切换 - 家庭共享:邀请家人共同管理同一只宠物(通过分享链接绑定) #### 4.2 数据安全与导出 - 云端自动备份(uniCloud天然支持) - 导出PDF:疫苗接种证明、完整健康档案 - 数据迁移:支持导出Excel/导入(防平台锁定) #### 4.3 会员体系 | 等级 | 功能 | | -------- | ------------------------------------------------------ | | 免费版 | 2只宠物、基础提醒、本地记录 | | 高级会员 | 无限宠物、PDF导出、OCR识别、家庭共享、去广告、优先客服 | --- ## 四、核心用户流程(User Flow) ### 流程1:新用户首次使用(Onboarding) ``` 启动小程序 → 微信授权登录 → 引导创建宠物档案 ↓ 输入宠物昵称、类型、品种、生日、头像 ↓ 系统根据年龄自动推荐疫苗/驱虫计划 ↓ "是否开启提醒?" → 引导开启订阅消息授权 ↓ 进入首页,展示今日/近期日程 ``` ### 流程2:记录一次疫苗接种 ``` 首页点击"+" → 选择"记录疫苗" → 选择宠物 ↓ 填写:疫苗名称、接种日期、医院、医生、批次号 ↓ 上传疫苗证照片(可选) ↓ 系统自动计算下次接种日期(如1年后) ↓ 确认保存 → 更新日程看板 ``` ### 流程3:逾期提醒处理 ``` 收到订阅消息:"咪咪的外驱已逾期3天" ↓ 点击消息进入小程序 → 高亮显示逾期事项 ↓ 用户选择:"已完成" / "推迟3天" / "忽略" ↓ 若完成:要求补录使用的驱虫药品牌 → 更新记录 ``` --- ## 五、数据库设计(uniCloud / MongoDB) ### 集合1:users(用户表) ```javascript { _id: ObjectId, wx_openid: String, // 微信openid unionid: String, // 微信unionid nickName: String, avatarUrl: String, phone: String, // 可选绑定 membership: { type: String, // 'free' | 'premium' expireAt: Date }, createdAt: Date, updatedAt: Date } ``` ### 集合2:pets(宠物档案表) ```javascript { _id: ObjectId, user_id: ObjectId, // 关联users name: String, type: String, // 'cat' | 'dog' | 'other' breed: String, gender: String, // 'male' | 'female' | 'unknown' birthday: Date, isBirthdayEstimated: Boolean, color: String, weight: [{ // 体重历史数组 value: Number, date: Date, note: String }], neutered: Boolean, avatar: String, // 云存储URL allergies: [String], chronicDiseases: [String], emergencyContact: { name: String, phone: String }, createdAt: Date } ``` ### 集合3:health_records(健康记录表) ```javascript { _id: ObjectId, pet_id: ObjectId, user_id: ObjectId, type: String, // 'vaccine' | 'deworm' | 'medical' | 'checkup' // 疫苗专用字段 vaccineName: String, batchNumber: String, // 驱虫专用字段 dewormType: String, // 'internal' | 'external' | 'both' brand: String, // 病历通用字段 hospital: String, doctor: String, date: Date, nextDate: Date, // 下次提醒日期 description: String, diagnosis: String, medications: [{ name: String, dosage: String, frequency: String }], images: [String], // 云存储图片数组 cost: Number, // 费用,可选 isCompleted: Boolean, // 是否完成(用于提醒) createdAt: Date } ``` ### 集合4:schedules(日程/提醒表) ```javascript { _id: ObjectId, pet_id: ObjectId, user_id: ObjectId, type: String, // 'vaccine' | 'deworm' | 'custom' title: String, scheduledDate: Date, frequency: String, // 'once' | 'daily' | 'weekly' | 'monthly' | 'yearly' interval: Number, // 每N个frequency status: String, // 'pending' | 'completed' | 'overdue' | 'skipped' reminderDays: [Number], // 提前提醒天数 [7,3,1] relatedRecordId: ObjectId, // 关联health_records createdAt: Date } ``` ### 集合5:hospitals(医院表,种子数据+UGC) ```javascript { _id: ObjectId, name: String, address: String, location: { type: "Point", coordinates: [lng, lat] // GeoJSON,用于地理位置查询 }, phone: String, hours: String, is24Hour: Boolean, tags: [String], // ['骨科', '心脏科', '夜间急诊'] rating: Number, reviewCount: Number, verified: Boolean, // 是否官方认证 createdAt: Date } ``` **索引建议**: - `pets`: `{ user_id: 1 }` - `health_records`: `{ pet_id: 1, date: -1 }`, `{ user_id: 1 }` - `schedules`: `{ user_id: 1, scheduledDate: 1 }`, `{ status: 1 }` - `hospitals`: `{ location: "2dsphere" }`(地理位置查询必需) --- ## 六、技术实现要点(uniCloud侧) ### 1. 云函数设计 | 云函数 | 职责 | | ----------------- | ------------------------------------------------------------ | | `login` | 微信登录,获取openid,创建/更新用户 | | `petCrud` | 宠物的增删改查 | | `recordCrud` | 健康记录的增删改查 | | `scheduleManager` | 创建提醒、计算下次日期、更新状态 | | `reminderPush` | **定时触发器**:每天9:00扫描`schedules`,给当天/逾期用户发订阅消息 | | `nearbyHospitals` | 接收经纬度,用MongoDB `$near`查询附近医院 | | `exportPdf` | 生成PDF档案(可用`pdfkit`或调用外部API) | | `contentCheck` | 调用微信内容安全API审核UGC内容 | ### 2. 定时触发器(关键) ```javascript // 每天上午9点执行 exports.main = async (event, context) => { const today = new Date(); const db = uniCloud.database(); // 查找今天需要提醒或已逾期的日程 const schedules = await db.collection('schedules') .where({ scheduledDate: db.command.lte(today), status: db.command.in(['pending', 'overdue']) }) .get(); // 批量发送订阅消息(需用户之前授权过) for (let item of schedules.data) { await sendSubscribeMessage(item.user_id, item); } // 标记逾期 await markOverdue(schedules.data); }; ``` ### 3. 权限设计(DB Schema) 利用 uniCloud 的 DB Schema 控制数据安全: ```json { "bsonType": "object", "permission": { "read": "doc.user_id == auth.uid", "create": "auth.uid != null", "update": "doc.user_id == auth.uid", "delete": "doc.user_id == auth.uid" } } ``` 确保用户只能看到自己的宠物数据。 --- ## 七、UI/UX 设计建议 ### 首页布局 ``` ┌──────────────────────────────┐ │ [头像] 早上好,铲屎官 │ │ │ │ ┌────┐ ┌────┐ ┌────┐ │ │ │🐱咪咪│ │🐶旺财│ │+添加│ │ │ └────┘ └────┘ └────┘ │ │ │ │ 📅 今日日程 │ │ ┌────────────────────────┐ │ │ │ ⚠️ 咪咪外驱 已逾期2天 │ │ │ │ [立即补录] │ │ │ └────────────────────────┘ │ │ ┌────────────────────────┐ │ │ │ ✅ 旺财狂犬疫苗 还有5天 │ │ │ └────────────────────────┘ │ │ │ │ 📊 咪咪本月健康概览 │ │ 体重: 4.2kg ↑0.1 │ │ 下次疫苗: 2026-12-01 │ │ │ │ [快速记录] [查看档案] [附近医院] │ └──────────────────────────────┘ ``` ### 设计规范 - **主色调**:暖橙色(#FF8C42)+ 薄荷绿(#4ECDC4),传递温暖、健康、活力 - **图标风格**:线性插画,宠物形象圆润可爱 - **空状态**:未创建宠物时展示引导插画;无日程时显示"今天可以撸猫啦~" - **加载态**: paw print(爪印)旋转动画 --- ## 八、MVP 版本排期建议 ### Phase 1(2-3周):核心闭环 - [ ] 微信登录 + 用户系统 - [ ] 创建/编辑宠物基础档案 - [ ] 疫苗/驱虫记录 CRUD - [ ] 基础提醒逻辑 + 订阅消息推送 - [ ] 首页日程看板 ### Phase 2(2周):体验增强 - [ ] 体重记录 + 曲线图 - [ ] 病历记录(图文) - [ ] 电子免疫证生成(H5页面样式) - [ ] 多宠物切换 ### Phase 3(2周):社区与变现 - [ ] 附近医院(种子数据) - [ ] 养宠百科(10篇种子文章) - [ ] 会员系统(uniCloud支持微信支付) - [ ] PDF导出 ### Phase 4(持续运营) - [ ] 丢失宠物启事 - [ ] 家庭共享 - [ ] OCR识别 - [ ] 用户反馈迭代 --- ## 九、商业化路径 | 阶段 | 策略 | | ---------- | ------------------------------------------------------------ | | **冷启动** | 免费使用,通过宠物群、小红书、豆瓣小组引流 | | **成长期** | 推出高级会员(¥12/月 或 ¥98/年),核心功能免费,高级功能付费 | | **变现期** | 宠物保险 CPS 分销(支付宝/众安宠物险)、宠物医院导流抽佣、宠物用品电商 | --- ## 十、风险与合规注意 1. **订阅消息限制**:微信小程序订阅消息需要用户每次授权,设计时要引导用户在关键节点(如设置提醒时)授权,且文案说明价值 2. **医疗免责声明**:所有健康建议需标注"仅供参考,具体请遵医嘱",避免医疗纠纷 3. **图片审核**:用户上传的宠物照片、病历等需接入微信内容安全API 4. **数据隐私**:宠物档案属于个人数据,需在用户协议中明确数据使用范围 --- 如果你确定要做这个方向,我可以继续帮你输出: 1. **详细的数据库 Schema 代码**(uniCloud 的 DB Schema 格式) 2. **核心页面的前端组件结构**(uni-app 页面规划) 3. **云函数代码框架**(登录、CRUD、定时提醒) 你想先从哪个部分深入?