This commit is contained in:
yvan 2025-08-12 09:51:56 +08:00
commit d610f024b7
19 changed files with 1282 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AugmentWebviewStateStore">
<option name="stateMap">
<map>
<entry key="CHAT_STATE" value="{&quot;currentConversationId&quot;:&quot;e8a14058-9ed0-4827-8b3a-36f4b1a454f2&quot;,&quot;conversations&quot;:{&quot;e8a14058-9ed0-4827-8b3a-36f4b1a454f2&quot;:{&quot;id&quot;:&quot;e8a14058-9ed0-4827-8b3a-36f4b1a454f2&quot;,&quot;createdAtIso&quot;:&quot;2025-08-12T01:50:01.742Z&quot;,&quot;lastInteractedAtIso&quot;:&quot;2025-08-12T01:50:01.742Z&quot;,&quot;chatHistory&quot;:[],&quot;feedbackStates&quot;:{},&quot;toolUseStates&quot;:{},&quot;draftExchange&quot;:{&quot;request_message&quot;:&quot;&quot;,&quot;rich_text_json_repr&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;}]},&quot;mentioned_items&quot;:[],&quot;status&quot;:&quot;draft&quot;},&quot;requestIds&quot;:[],&quot;isPinned&quot;:false,&quot;isShareable&quot;:false,&quot;extraData&quot;:{&quot;isAgentConversation&quot;:true,&quot;hasAgentOnboarded&quot;:true,&quot;hasDirtyEdits&quot;:false},&quot;personaType&quot;:0,&quot;rootTaskUuid&quot;:&quot;073951cf-e902-4205-ab6c-7c34e5b6ba80&quot;}},&quot;agentExecutionMode&quot;:&quot;manual&quot;,&quot;isPanelCollapsed&quot;:true,&quot;displayedAnnouncements&quot;:[]}" />
</map>
</option>
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pet-ai.iml" filepath="$PROJECT_DIR$/.idea/pet-ai.iml" />
</modules>
</component>
</project>

12
.idea/pet-ai.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

17
App.vue Normal file
View File

@ -0,0 +1,17 @@
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
</style>

20
index.html Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>

22
main.js Normal file
View File

@ -0,0 +1,22 @@
import App from './App'
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif

72
manifest.json Normal file
View File

@ -0,0 +1,72 @@
{
"name" : "pet-ai",
"appid" : "__UNI__2010549",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* */
"modules" : {},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
}
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3"
}

17
pages.json Normal file
View File

@ -0,0 +1,17 @@
{
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}

52
pages/index/index.vue Normal file
View File

@ -0,0 +1,52 @@
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>

77
pet.md Normal file
View File

@ -0,0 +1,77 @@
我想做一个宠物的小程序,
### 宠物相关
创建、记录多个宠物的信息,展示宠物信息,包括名字,星座,品种,岁数,陪伴了多少天,宠物的照片头像
显示宠物的所有的日常瞬间,包括随手记,大事记(绝育,第一次吃奶,第一次吃猫粮,第一次用猫砂,第一次搞破坏,第一次出门,第一次发情,生日,到家等等重要的时间记录),日常记录(体重、尿便、饮食、喝水、记账),健康记录(喂保健品,驱虫,疫苗,抗体水平,体检,看病,给药,住院,手术),洗护记录(洗澡,剪指甲,洗耳朵,刷牙,梳毛,剃脚毛,美容,挤肛门腺,擦眼屎),清洁记录(消毒,清洁,换猫砂,洗猫砂盆,洗食盆,洗水盆,洗玩具,洗笼子,换滤芯,换干燥剂),自定义类型
记账这个功能,可以对单只猫进行统计,按照月份,按照年份,也有对应的曲线图,可以切换猫咪
这些日常都可以进行日常分享,或者私有自己看、或者选择只列出给家人看。
而且类似体重、饮水、饮食这些都可以生成对猫咪健康的分析把品种和数据给AI进行分析
每一只猫,按照目前所有的数据,进行猫咪的性格,健康分析。有自己专属的卡片记录,卡片有自己的信息,包括上面分享的一系列记录(如果选择公开的话)。
每个人可以邀请其他人作为自己的共养家人,以及亲友团,这些都可以接收和观看所有的记录和提醒,事件也会进行微信推送。能看到宠物
### 宠物助手
包括一些宠物的知识库包括宠物生病、宠物训练、宠物的喂养等包括宠物的专属智能体AI回答问话这些对话的上下文需要记录以及分页并且可以打断可以切换深度思考或者普通对话包括一些tool或者mcp的调用如果发了一句明天九点提醒我给宠物做疫苗就会生成一条记录明天早上九点的提醒以及记录并提前给用户提醒以及过半小时询问用户是否完成活动并且更新活动状态。以及每一天对隔天的对话内容进行总结如果提到了某些猫咪生病不舒服之类的隔天则进行提醒等站内信。
### 领养专区
一些待领养的猫咪,可以发布领养的消息,可以对地区进行过滤筛选,用户可以发布领养消息,管理员进行审核,审核通过后即可展示在领养专区里,领养可以填写包括(名字,性别,种类,绝育,疫苗,生病,驱虫等信息)以及内容,还有图片,然后设置限时或者不限时,还有设置一些问题(要求养过猫,要求对猫绝育,要求对猫驱虫等要求),发布之后,有意向的人可以选择报名,并附加说明自己的情况(是否养过,目前有没有猫,几只宠物,是否能够)以及回答发布领养的人设置的问题,回答完通知领养人,领养人可以对这些内容进行查看,选择最适合领养宠物的选择,之后进行聊天谈细节等等。
这些是我第一个版本想做的功能希望可以吸引用户来使用你可以帮我进行每个功能点进行一些优化吗然后补充一些我忘记写的细节或者在帮我补充一些可以吸引人使用的功能。然后你扮演一个产品经理然后帮我生成md文件生成第一版本的计划、需求等。
### 宠物社区
还有宠物的社区相关内容,分享帖子、宠物等,你帮我补充遗漏的功能点
### 宠物食品/日用品测评
宠物食品等的测评总结等,猫砂、猫粮、狗粮,你帮我补充遗漏的功能点
我想做一个宠物的小程序,
### 宠物相关
创建、记录多个宠物的信息,展示宠物信息,显示宠物的所有的日常瞬间,显示宠物的计划(什么时候去打疫苗等),显示宠物的健康状况记录(每次生病的记录),体重记录等等,你帮我补充遗漏的功能点
### 宠物助手
包括一些宠物的知识库包括宠物生病、宠物训练、宠物的喂养等包括宠物的专属智能体AI回答问话你帮我补充遗漏的功能点
### 领养专区
一些待领养的猫咪,包括猫咪的详情信息等等,你帮我补充遗漏的功能点
### 宠物社区
还有宠物的社区相关内容,分享帖子、宠物等,附近的宠物医院等。你帮我补充遗漏的功能点
### 宠物食品/日用品测评
宠物食品等的测评总结等,猫砂、猫粮、狗粮,你帮我补充遗漏的功能点,给我一些建议,以及帮我补充每个功能点的一些细节功能,或者帮我创新一些新功能,还会有哪些功能能够吸引更多的人
你帮我完善一下这些功能点然后可以在增加一些创新的模块帮我生成md
宠物的基本信息:宠物头像,宠物名字,猫咪种类(猫咪,狗狗),品种,性别,是否绝育,出生日期,到家日期,体重,性格
记录信息:
类型(随手记、大事记、日常记录(体重、尿便、饮食、喝水、记账)、健康记录(喂保健品、异常、驱虫、疫苗、抗体水平、体检、看病、给药、住院、手术)、洗护记录(洗澡、剪指甲、洗耳朵、刷牙、梳毛、剃脚毛、美容、挤肛门腺、擦眼屎)、清洁记录(消毒、清洁、换猫砂、洗猫砂盆、洗食盆、洗水盆、洗玩具、洗笼子、换滤芯、换干燥剂))
哪一个宠物,
记录时间
时间具体内容(json类型每个记录都有不同的内容)
内容
图片(多张)
视频(多张)
记录可见的范围(公开、家人、私有)
家庭:
每个用户可以选择家庭加入或者创建自己的家庭只能选择其一不能同时加入了家庭还创建家庭。一个家庭最多10个人
可以邀请其他人加入,也可加入其他人的家庭。加入家庭之后,家庭内的成员共享所有的宠物信息,包括宠物信息(如果选择私有则不可见)
领养:
每个用户可以发送领养帖子,包括宠物名字,宠物年龄,宠物性别,是否绝育,宠物品种,体重,性格,地区,宠物图片,健康状况(健康,生病),宠物视频,领养要求,领养条件(问答模式,添加问答或者选择题或者判断或者多选题的类型),截止时间,联系人电话
领养人要进行申请,然后填写领养信息中的问卷回答问题进行报名,之后发布的人可以对报名领养的人进行查看以及筛选,也可以对进行报名的人进行联系
宠物智能体:
每个宠物智能体的llm对话表需要保存这些聊天记录上下文的记录每个用户查看自己的聊天记录。
AI助手
AI助手智能体的llm对话表然后需要保存这些聊天记录上下文。每个用户查看自己的聊天记录。
你帮我创建这些所有的表结构生成sql文件

BIN
static/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

13
uni.promisify.adaptor.js Normal file
View File

@ -0,0 +1,13 @@
uni.addInterceptor({
returnValue (res) {
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => {
if (!res) return resolve(res)
return res[0] ? reject(res[0]) : resolve(res[1])
});
});
},
});

76
uni.scss Normal file
View File

@ -0,0 +1,76 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16px;
/* 图片尺寸 */
$uni-img-size-sm:20px;
$uni-img-size-base:26px;
$uni-img-size-lg:40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:20px;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px;

View File

@ -0,0 +1,300 @@
# 宠物管家小程序第一版本产品需求文档
## 1. 产品概述
### 1.1 产品定位
宠物管家第一版本是一款专注于宠物日常管理的小程序,提供宠物档案管理、日常记录、记账统计、家庭共养等核心功能。
### 1.2 目标用户
- **主要用户**:养宠家庭、宠物爱好者
- **次要用户**:准备养宠人群、宠物救助者
### 1.3 第一版本目标
- 帮助宠物主科学记录宠物日常生活
- 提供简单的数据统计和分析
- 支持家庭成员共同管理宠物
- 建立基础的宠物领养信息平台
## 2. 第一版本核心功能
### 2.1 宠物档案管理
#### 2.1.1 基础信息录入
- **必填信息**:宠物名字、品种、性别、生日、到家日期
- **可选信息**:体重、毛色、性格标签、特殊说明
- **头像上传**:支持拍照或从相册选择宠物照片
- **自动计算**:根据生日自动计算年龄和星座
#### 2.1.2 信息展示
- **宠物卡片**:在首页展示宠物基本信息和头像
- **陪伴天数**:自动计算从到家日期到现在的天数
- **详情页面**:完整展示宠物所有信息
- **编辑功能**:支持修改宠物信息
### 2.2 日常记录系统
#### 2.2.1 记录分类
- **随手记**:日常趣事、心情记录、文字+图片
- **大事记**:重要时刻记录(绝育、第一次吃奶、第一次吃猫粮、第一次用猫砂、第一次搞破坏、第一次出门、第一次发情、生日、到家等)
- **日常记录**:体重、尿便、饮食、喝水、记账
- **健康记录**:喂保健品、驱虫、疫苗、抗体水平、体检、看病、给药、住院、手术
- **洗护记录**:洗澡、剪指甲、洗耳朵、刷牙、梳毛、剃脚毛、美容、挤肛门腺、擦眼屎
- **清洁记录**:消毒、清洁、换猫砂、洗猫砂盆、洗食盆、洗水盆、洗玩具、洗笼子、换滤芯、换干燥剂
- **自定义类型**:用户可以自定义记录类型
#### 2.2.2 记录功能
- **添加记录**:选择记录类型,填写内容、时间、数值(如体重)
- **图片上传**:每条记录可以添加多张图片
- **时间线展示**:按时间顺序展示所有记录
- **分类筛选**:可以按记录类型筛选查看
- **编辑删除**:支持修改和删除已有记录
### 2.3 记账统计功能
#### 2.3.1 消费记录
- **记账分类**:食物、医疗、用品、服务、其他
- **记录内容**:金额、类别、备注、关联宠物、时间
- **多宠物支持**:可以选择消费是针对哪只宠物
#### 2.3.2 统计分析
- **宠物切换**:可以切换查看不同宠物的消费统计
- **时间维度**:按月份、按年份统计消费
- **图表展示**:简单的柱状图或折线图展示消费趋势
- **分类统计**:按消费类别统计金额和占比
## 3. 分享和家庭功能
### 3.1 分享设置
- **分享权限**:每条记录可以设置三种分享模式
- 公开:所有人可见
- 仅家人:只有家庭成员可见
- 私有:只有自己可见
- **默认设置**:可以设置默认的分享权限
- **批量设置**:可以批量修改已有记录的分享权限
### 3.2 家庭共养功能
- **创建家庭**:宠物主人可以创建家庭
- **邀请成员**:通过邀请码或微信直接邀请家人加入
- **成员权限**
- 主人:所有权限
- 家人:可以查看和添加记录
- 观察者:只能查看记录
- **消息推送**:重要事件(如生病、疫苗等)会推送给所有家庭成员
## 4. AI宠物助手基础版
### 4.1 基础对话功能
- **文字对话**用户可以通过文字与AI助手对话
- **知识问答**:回答宠物相关的基础问题(生病、训练、喂养等)
- **上下文记录**:保存对话历史,支持分页查看
- **对话打断**:用户可以随时开始新的对话主题
### 4.2 简单知识库
- **宠物生病**:常见疾病的症状和处理建议
- **宠物训练**:基础的训练方法和技巧
- **宠物喂养**:不同年龄段的喂养指导
- **紧急情况**:紧急情况的处理步骤
### 4.3 智能提醒功能
- **语义识别**:识别用户对话中的时间和任务
- 例如:"明天九点提醒我给宠物做疫苗"
- **自动生成**:自动生成提醒记录和任务
- **推送提醒**:到时间后推送提醒消息
- **状态跟踪**:提醒后询问用户是否完成,更新任务状态
### 4.4 每日总结
- **对话总结**:每天对当天的对话内容进行总结
- **健康关注**:如果提到宠物生病或不舒服,第二天会主动询问情况
- **站内消息**:重要提醒通过站内消息推送
## 5. 领养专区
### 5.1 发布领养信息
- **宠物信息**:名字、性别、种类、年龄、绝育状态、疫苗情况、驱虫情况、健康状况
- **图片上传**:支持上传多张宠物照片
- **详细描述**:宠物性格、习惯、特殊需求等文字描述
- **领养要求**:设置领养条件(如要求养过猫、要求对猫绝育、要求对猫驱虫等)
- **筛选问题**:设置申请者需要回答的问题
- **时效设置**:可以设置领养信息的有效期,或选择不限时
### 5.2 浏览和筛选
- **地区筛选**:按地理位置筛选附近的领养信息
- **基础搜索**:按宠物类型、性别、年龄等条件搜索
- **信息展示**:列表展示领养信息,包含基本信息和照片
- **详情查看**:点击查看完整的领养信息和要求
### 5.3 申请和沟通
- **申请报名**:有意向的用户可以申请领养
- **个人信息**:填写个人基本信息和养宠经验
- **回答问题**:回答发布者设置的筛选问题
- **申请说明**:说明自己的养宠条件和能力
- **消息通知**:申请后通知发布者
- **聊天功能**:申请通过后可以进行私聊沟通细节
### 5.4 管理和审核
- **管理员审核**:发布的领养信息需要管理员审核通过
- **申请管理**:发布者可以查看所有申请,选择合适的申请者
- **状态更新**:领养成功后更新信息状态
## 6. 技术方案
### 6.1 技术架构
- **前端框架**uni-app + Vue3支持微信小程序
- **后端框架**Node.js + Express
- **数据库**MongoDB
- **文件存储**腾讯云COS对象存储
- **AI服务**接入百度文心一言或腾讯AI
### 6.2 核心数据结构
- **用户表**用户基本信息、微信openid
- **宠物表**:宠物档案信息
- **记录表**:所有类型的记录统一存储
- **家庭表**:家庭成员关系
- **领养表**:领养信息和申请记录
### 6.3 关键功能实现
- **微信登录**:使用微信小程序授权登录
- **图片上传**集成腾讯云COS支持图片压缩
- **消息推送**:使用微信小程序模板消息
- **数据统计**前端使用uCharts生成图表
## 7. 第一版本开发计划
### 7.1 开发周期总计16周
#### 第1-2周项目搭建
- 前后端项目架构搭建
- 开发环境配置
- 数据库设计
- 基础UI组件开发
- 微信小程序配置
#### 第3-4周用户系统和宠物档案
- 微信登录功能
- 用户信息管理
- 宠物档案CRUD功能
- 宠物信息展示页面
- 图片上传功能
#### 第5-7周日常记录系统
- 记录分类和添加功能
- 记录列表和详情页
- 图片上传和展示
- 时间线展示
- 记录编辑和删除
#### 第8-9周记账统计功能
- 消费记录添加
- 按宠物和时间统计
- 图表展示功能
- 数据筛选和查看
#### 第10-11周分享和家庭功能
- 分享权限设置
- 家庭创建和邀请
- 成员权限管理
- 消息推送功能
#### 第12-13周AI助手基础版
- AI对话接口集成
- 知识库查询功能
- 对话历史记录
- 智能提醒功能
#### 第14-15周领养专区
- 领养信息发布
- 浏览和筛选功能
- 申请和审核流程
- 聊天功能
#### 第16周测试和优化
- 功能测试和bug修复
- 性能优化
- 用户体验优化
- 发布准备
### 7.2 团队配置
- **产品经理**1人负责需求管理和项目协调
- **UI设计师**1人负责界面设计和用户体验
- **前端开发**1-2人负责小程序开发
- **后端开发**1-2人负责API和数据库开发
- **测试**1人负责功能测试和质量保证
### 7.3 关键里程碑
- **第4周**:完成宠物档案管理功能
- **第7周**:完成日常记录系统
- **第9周**:完成记账统计功能
- **第11周**:完成家庭共养功能
- **第13周**完成AI助手基础版
- **第15周**:完成领养专区
- **第16周**:完成测试,准备发布
## 8. 功能优先级
### 8.1 高优先级(必须实现)
1. 宠物档案管理
2. 日常记录系统
3. 基础分享功能
4. 记账统计功能
### 8.2 中优先级(重要功能)
1. 家庭共养功能
2. AI助手基础版
3. 消息推送功能
### 8.3 低优先级(可选功能)
1. 领养专区
2. 高级AI功能
3. 复杂数据分析
## 9. 第一版本成功指标
### 9.1 用户指标
- **用户注册**目标1000个注册用户
- **活跃用户**日活跃用户50人以上
- **记录频次**用户平均每周记录3次以上
- **留存率**7日留存率达到30%以上
### 9.2 功能使用率
- **宠物档案**90%用户完成宠物档案创建
- **日常记录**70%用户使用记录功能
- **记账功能**40%用户使用记账功能
- **家庭共养**20%用户邀请家人加入
### 9.3 技术指标
- **系统稳定性**99%以上的可用性
- **响应速度**API响应时间小于2秒
- **图片上传**成功率95%以上
## 10. 风险控制
### 10.1 开发风险
- **进度延期**:每周进度检查,及时调整资源
- **技术难点**:提前验证关键技术,准备备选方案
- **质量问题**:建立测试流程,确保功能质量
### 10.2 用户风险
- **用户接受度**:通过小范围测试收集用户反馈
- **使用习惯**:简化操作流程,提供使用指导
- **数据安全**:严格保护用户隐私和宠物信息
## 11. 后续版本规划
### 11.1 第二版本V2.0
- 增强AI分析能力
- 添加更多宠物种类支持
- 完善社区功能
- 增加专家服务
### 11.2 长期规划
- 智能硬件集成
- 宠物健康预警系统
- 商业化功能
- 平台生态建设
---
**文档版本**:第一版本 v1.0
**创建日期**2025年1月
**预计完成时间**2025年5月
**负责人**:产品开发团队

152
技术栈选择建议.md Normal file
View File

@ -0,0 +1,152 @@
# 宠物管家小程序技术栈选择建议
## 推荐方案uni-app + Vue3
### 选择理由
#### 1. 功能复杂度匹配
- 你的项目包含8个主要功能模块功能复杂度较高
- uni-app的组件化开发模式非常适合复杂业务场景
- Vue3的组合式API便于组织复杂的业务逻辑
#### 2. 开发效率优势
- **快速开发**丰富的UI组件库uView、uni-ui
- **代码复用**:组件可以在不同页面间复用
- **开发工具**HBuilderX提供可视化开发支持
#### 3. 跨平台能力
- 一套代码多端发布微信小程序、支付宝小程序、H5、App
- 为后续业务扩展提供技术基础
#### 4. 生态系统
- 插件市场丰富有现成的图表、AI对话等插件
- 社区活跃,问题解决方案多
## 具体技术栈配置
### 前端技术栈
```
核心框架uni-app + Vue3 + TypeScript
状态管理Pinia
UI组件库uView UI 2.0
图表库uCharts
工具库lodash、dayjs
```
### 后端技术栈
```
运行环境Node.js 16+
Web框架Express.js
数据库MongoDB + Redis
文件存储腾讯云COS
AI服务腾讯云AI或百度文心一言
推送服务:微信小程序模板消息
```
### 开发工具
```
IDEHBuilderX 或 VS Code + uni-app插件
版本控制Git
API测试Postman
数据库管理MongoDB Compass
```
## 项目结构建议
```
pet-miniprogram/
├── pages/ # 页面文件
│ ├── index/ # 首页
│ ├── pet/ # 宠物相关页面
│ │ ├── list/ # 宠物列表
│ │ ├── detail/ # 宠物详情
│ │ └── add/ # 添加宠物
│ ├── record/ # 记录相关页面
│ │ ├── list/ # 记录列表
│ │ ├── add/ # 添加记录
│ │ └── detail/ # 记录详情
│ ├── statistics/ # 统计页面
│ ├── family/ # 家庭管理
│ ├── adoption/ # 领养专区
│ ├── ai-assistant/ # AI助手
│ └── user/ # 用户中心
├── components/ # 公共组件
│ ├── pet-card/ # 宠物卡片
│ ├── record-item/ # 记录项
│ ├── chart/ # 图表组件
│ └── upload/ # 上传组件
├── static/ # 静态资源
├── store/ # 状态管理
│ ├── modules/
│ │ ├── user.js # 用户状态
│ │ ├── pet.js # 宠物状态
│ │ └── record.js # 记录状态
│ └── index.js
├── utils/ # 工具函数
│ ├── request.js # 网络请求
│ ├── auth.js # 认证相关
│ ├── upload.js # 文件上传
│ └── common.js # 通用工具
├── api/ # API接口
│ ├── user.js
│ ├── pet.js
│ ├── record.js
│ └── adoption.js
├── manifest.json # 应用配置
├── pages.json # 页面配置
└── App.vue # 应用入口
```
## 关键技术实现要点
### 1. 数据管理
- 使用Pinia进行状态管理
- 本地存储用户登录状态和常用数据
- 实现数据的离线缓存机制
### 2. 图片处理
- 集成腾讯云COS SDK
- 实现图片压缩和上传
- 支持多图上传和预览
### 3. 图表统计
- 使用uCharts实现消费统计图表
- 支持柱状图、饼图、折线图
- 响应式图表适配不同屏幕
### 4. AI对话
- 集成AI API腾讯云或百度
- 实现对话历史存储
- 支持语义识别和智能提醒
### 5. 消息推送
- 集成微信小程序模板消息
- 实现家庭成员消息通知
- 支持定时提醒功能
## 开发周期预估
基于uni-app + Vue3的开发效率预计开发周期
- **项目搭建**1周
- **核心功能开发**10-12周
- **测试优化**2-3周
- **总计**13-16周
## 学习资源推荐
1. **uni-app官方文档**https://uniapp.dcloud.net.cn/
2. **Vue3官方文档**https://cn.vuejs.org/
3. **uView UI文档**https://www.uviewui.com/
4. **微信小程序开发文档**https://developers.weixin.qq.com/miniprogram/dev/framework/
## 总结
对于你的宠物管家小程序项目,**uni-app + Vue3** 是最佳选择:
**开发效率高** - 适合复杂功能快速开发
**技术成熟** - 生态完善,社区支持好
**扩展性强** - 支持跨平台发布
**维护成本低** - 代码结构清晰,易于维护
建议立即开始使用这个技术栈进行项目开发!

View File

@ -0,0 +1,419 @@
# 宠物管家小程序第一版本功能拆分详细说明
## 1. 功能模块总览
### 1.1 核心功能模块
1. **用户系统** - 微信登录、用户信息管理
2. **宠物档案管理** - 宠物信息录入、展示、编辑
3. **日常记录系统** - 多类型记录的添加、查看、管理
4. **记账统计功能** - 消费记录、统计分析、图表展示
5. **分享权限管理** - 记录分享设置、隐私控制
6. **家庭共养功能** - 家庭创建、成员邀请、权限管理
7. **AI助手基础版** - 简单对话、知识查询、智能提醒
8. **领养专区** - 发布领养、浏览申请、沟通管理
## 2. 详细功能拆分
### 2.1 用户系统
#### 2.1.1 微信登录
**功能描述**:用户通过微信授权登录小程序
**具体实现**
- 调用微信小程序登录API获取code
- 后端通过code换取openid和session_key
- 生成JWT token返回给前端
- 前端存储token用于后续API调用
**页面设计**
- 登录页面:显示微信登录按钮
- 授权页面:获取用户基本信息授权
**数据字段**
- openid微信用户唯一标识
- nickname用户昵称
- avatar用户头像
- phone手机号可选
#### 2.1.2 用户信息管理
**功能描述**:用户可以查看和编辑个人信息
**具体实现**
- 个人中心页面展示用户信息
- 支持修改昵称、头像、手机号
- 头像支持拍照或从相册选择
### 2.2 宠物档案管理
#### 2.2.1 宠物信息录入
**功能描述**:用户可以添加宠物的基本信息
**必填字段**
- 宠物名字:文本输入
- 品种:下拉选择或文本输入
- 性别:单选(公/母)
- 生日:日期选择器
- 到家日期:日期选择器
**可选字段**
- 体重数字输入单位kg
- 毛色:文本输入
- 性格标签:多选标签
- 特殊说明:文本输入
- 头像:图片上传
**自动计算字段**
- 年龄:根据生日自动计算
- 陪伴天数:根据到家日期自动计算
- 星座:根据生日自动计算
#### 2.2.2 宠物信息展示
**首页宠物卡片**
- 宠物头像(圆形)
- 宠物名字
- 年龄和陪伴天数
- 快捷操作按钮(添加记录、查看详情)
**宠物详情页**
- 完整的宠物信息展示
- 编辑按钮
- 最近记录列表
- 统计数据概览
#### 2.2.3 多宠物管理
**功能描述**:支持用户管理多只宠物
**具体实现**
- 宠物列表页面
- 宠物切换功能
- 每只宠物独立的记录和统计
### 2.3 日常记录系统
#### 2.3.1 记录分类定义
**随手记**
- 内容:文字描述
- 图片可选最多9张
- 时间:默认当前时间,可修改
**大事记**
- 预设选项:绝育、第一次吃奶、第一次吃猫粮、第一次用猫砂、第一次搞破坏、第一次出门、第一次发情、生日、到家
- 自定义:用户可以添加自定义大事记
- 内容:文字描述
- 图片:可选
- 时间:必填
**日常记录**
- 体重数值输入kg+ 备注
- 尿便:次数 + 状态描述 + 图片
- 饮食:食物类型 + 分量 + 时间 + 图片
- 喝水水量ml+ 时间
- 记账:金额 + 类别 + 备注
**健康记录**
- 喂保健品:保健品名称 + 剂量 + 时间
- 驱虫:驱虫药名称 + 时间 + 下次提醒
- 疫苗:疫苗类型 + 时间 + 下次提醒
- 抗体水平:检测结果 + 时间
- 体检:体检项目 + 结果 + 图片
- 看病:症状 + 诊断 + 治疗方案 + 费用
- 给药:药品名称 + 剂量 + 频次 + 时间
- 住院:入院时间 + 出院时间 + 原因 + 费用
- 手术:手术类型 + 时间 + 费用 + 恢复情况
**洗护记录**
- 洗澡:时间 + 使用产品 + 图片
- 剪指甲:时间 + 备注
- 洗耳朵:时间 + 使用产品
- 刷牙:时间 + 使用产品
- 梳毛:时间 + 备注
- 剃脚毛:时间 + 备注
- 美容:时间 + 项目 + 费用 + 图片
- 挤肛门腺:时间 + 备注
- 擦眼屎:时间 + 备注
**清洁记录**
- 消毒:消毒区域 + 使用产品 + 时间
- 清洁:清洁项目 + 时间
- 换猫砂:时间 + 猫砂类型
- 洗猫砂盆:时间 + 清洁产品
- 洗食盆:时间
- 洗水盆:时间
- 洗玩具:时间 + 清洁方式
- 洗笼子:时间 + 清洁产品
- 换滤芯:设备名称 + 时间
- 换干燥剂:时间 + 位置
**自定义类型**
- 用户可以创建自定义记录类型
- 自定义字段配置
- 保存为模板供后续使用
#### 2.3.2 记录添加流程
1. 选择宠物(如果有多只)
2. 选择记录类型
3. 填写记录内容
4. 上传图片(可选)
5. 设置分享权限
6. 保存记录
#### 2.3.3 记录展示和管理
**时间线展示**
- 按时间倒序显示所有记录
- 不同类型用不同图标和颜色区分
- 支持下拉刷新和上拉加载
**分类筛选**
- 按记录类型筛选
- 按时间范围筛选
- 按宠物筛选(多宠物情况)
**记录详情**
- 完整的记录信息展示
- 图片查看(支持放大)
- 编辑和删除功能
### 2.4 记账统计功能
#### 2.4.1 消费记录
**记录字段**
- 金额:数字输入(精确到分)
- 类别:食物、医疗、用品、服务、其他
- 备注:文字描述
- 关联宠物:选择宠物(支持多选)
- 时间:默认当前时间,可修改
**快捷记录**
- 常用金额快捷按钮
- 常用类别快捷选择
- 语音输入金额
#### 2.4.2 统计分析
**宠物维度统计**
- 可以切换查看不同宠物的消费
- 支持查看所有宠物的总消费
**时间维度统计**
- 按月份统计:当月消费总额和分类占比
- 按年份统计:全年消费趋势
- 自定义时间范围统计
**图表展示**
- 柱状图:月度消费趋势
- 饼图:消费类别占比
- 折线图:消费变化趋势
#### 2.4.3 数据导出
- 支持导出Excel格式的消费记录
- 按时间范围和宠物筛选导出
- 包含详细的消费明细和统计汇总
### 2.5 分享权限管理
#### 2.5.1 分享设置
**三种分享模式**
- 公开:所有用户可见
- 仅家人:只有家庭成员可见
- 私有:只有自己可见
**设置方式**
- 添加记录时设置
- 记录详情页修改
- 批量修改多条记录
#### 2.5.2 默认设置
- 用户可以设置默认的分享权限
- 新记录自动使用默认设置
- 可以为不同类型的记录设置不同的默认权限
### 2.6 家庭共养功能
#### 2.6.1 家庭创建
**创建流程**
1. 用户点击创建家庭
2. 填写家庭名称
3. 选择要共享的宠物
4. 生成邀请码
**家庭信息**
- 家庭名称
- 创建时间
- 成员数量
- 共享宠物列表
#### 2.6.2 成员邀请
**邀请方式**
- 邀请码分享生成6位数字邀请码
- 微信直接邀请:通过微信分享邀请链接
**邀请流程**
1. 家庭主人发送邀请
2. 被邀请人点击链接或输入邀请码
3. 确认加入家庭
4. 设置成员权限
#### 2.6.3 权限管理
**角色定义**
- 主人:所有权限,可以邀请成员、设置权限、删除家庭
- 家人:可以查看和添加记录,不能删除其他人的记录
- 观察者:只能查看记录,不能添加或修改
**权限细分**
- 查看记录:所有角色都有
- 添加记录:主人和家人
- 编辑记录:只能编辑自己添加的记录
- 删除记录:只能删除自己添加的记录
- 管理宠物:只有主人可以
#### 2.6.4 消息推送
**推送场景**
- 新成员加入家庭
- 重要健康记录(生病、疫苗、体检等)
- 紧急情况记录
**推送方式**
- 微信小程序模板消息
- 站内消息通知
### 2.7 AI助手基础版
#### 2.7.1 基础对话功能
**对话界面**
- 聊天气泡样式
- 支持文字输入
- 显示AI回复
**知识问答**
- 宠物生病:常见疾病症状和处理建议
- 宠物训练:基础训练方法和技巧
- 宠物喂养:不同年龄段的喂养指导
- 紧急情况:紧急情况的处理步骤
#### 2.7.2 智能提醒功能
**语义识别**
- 识别时间表达明天、下周、9点等
- 识别任务内容:疫苗、体检、喂药等
- 生成结构化提醒
**提醒管理**
- 自动生成提醒记录
- 设置推送时间
- 提醒后询问完成状态
- 更新任务状态
#### 2.7.3 对话历史
**历史记录**
- 保存所有对话内容
- 按日期分组显示
- 支持搜索历史对话
**分页加载**
- 每页显示20条对话
- 支持上拉加载更多
- 新对话自动滚动到底部
#### 2.7.4 每日总结
**总结功能**
- 每天晚上自动总结当天对话
- 识别重要信息(健康问题、异常情况)
- 生成关注提醒
**主动关怀**
- 如果提到宠物生病,第二天主动询问情况
- 定期询问宠物状况
- 提供个性化建议
### 2.8 领养专区
#### 2.8.1 发布领养信息
**宠物信息**
- 基本信息:名字、性别、种类、年龄
- 健康状况:绝育、疫苗、驱虫、疾病情况
- 性格描述:文字描述宠物性格和习惯
- 图片上传最多9张宠物照片
**领养要求**
- 基础要求:年龄、居住条件、经济能力
- 特殊要求:养宠经验、是否同意绝育等
- 筛选问题:自定义问题列表
**发布设置**
- 有效期:可设置领养信息的有效期
- 联系方式:手机号或微信号
- 地区:选择所在城市和区域
#### 2.8.2 浏览和筛选
**列表展示**
- 宠物照片和基本信息
- 发布时间和地区
- 快速筛选标签
**筛选功能**
- 地区筛选:按省市区筛选
- 类型筛选:按宠物种类筛选
- 条件筛选:按年龄、性别、绝育状态筛选
**搜索功能**
- 关键词搜索
- 按品种搜索
- 按发布者搜索
#### 2.8.3 申请和沟通
**申请流程**
1. 查看领养详情
2. 填写申请信息
3. 回答筛选问题
4. 提交申请
5. 等待审核
**申请信息**
- 个人基本信息
- 养宠经验描述
- 居住环境说明
- 承诺和保证
**沟通功能**
- 简单的聊天界面
- 支持文字和图片
- 消息推送通知
#### 2.8.4 管理和审核
**发布者管理**
- 查看所有申请
- 筛选合适的申请者
- 与申请者沟通
- 选择最终领养者
**管理员审核**
- 审核发布的领养信息
- 处理举报和投诉
- 维护平台秩序
**状态管理**
- 发布中、已暂停、已完成
- 申请中、已通过、已拒绝
- 自动状态更新
## 3. 技术实现要点
### 3.1 数据存储
- 使用MongoDB存储所有数据
- 图片存储在腾讯云COS
- Redis缓存热点数据
### 3.2 API设计
- RESTful API设计
- JWT token认证
- 统一的错误处理和返回格式
### 3.3 性能优化
- 图片压缩和懒加载
- 分页加载减少数据量
- 缓存常用数据
### 3.4 安全考虑
- 用户数据加密存储
- API接口权限验证
- 图片内容安全检查
---
**文档版本**v1.0
**创建日期**2025年1月
**负责人**:开发团队