diff --git a/App.vue b/App.vue index 8c2b732..50fca5f 100644 --- a/App.vue +++ b/App.vue @@ -12,6 +12,7 @@ } - diff --git a/README.md b/README.md new file mode 100644 index 0000000..350267d --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# 宠爱小程序 + +一个专注于宠物管理的微信小程序,提供宠物档案管理、AI助手、领养专区等功能。 + +## 项目结构 + +``` +pet-ai/ +├── pages/ +│ ├── pets/ # 宠物管理页面 +│ ├── assistant/ # AI助手页面 +│ ├── adoption/ # 领养专区页面 +│ └── profile/ # 个人中心页面 +├── static/ +│ └── tabbar/ # Tab图标文件夹 +└── uni_modules/ # 插件模块(需要安装) +``` + +## 当前完成状态 + +✅ 基础项目结构搭建 +✅ Tab导航配置 +✅ 四个主要页面创建 +✅ 宠物页面基础功能 + +## 待完成任务 + +### 1. UI框架安装 +**推荐方式**:在HBuilderX中打开项目,通过插件市场安装uview-next +- 插件市场地址:https://ext.dcloud.net.cn/plugin?id=24021 +- 插件ID:uview-next +- 安装后需要配置main.js和uni.scss + +### 2. Tab图标获取 +需要为以下4个tab页面添加可爱的宠物主题图标: + +**推荐图标资源**: +- [iconfont阿里巴巴矢量图标库](https://www.iconfont.cn/) +- [Feather Icons](https://feathericons.com/) +- [Heroicons](https://heroicons.com/) + +**所需图标**: +- `static/tabbar/pets.png` - 宠物图标(如猫爪、宠物头像) +- `static/tabbar/pets-active.png` - 宠物图标激活状态 +- `static/tabbar/assistant.png` - AI助手图标(如机器人、对话框) +- `static/tabbar/assistant-active.png` - AI助手图标激活状态 +- `static/tabbar/adoption.png` - 领养图标(如爱心、房子) +- `static/tabbar/adoption-active.png` - 领养图标激活状态 +- `static/tabbar/profile.png` - 个人中心图标(如用户头像) +- `static/tabbar/profile-active.png` - 个人中心图标激活状态 + +**图标规格**: +- 尺寸:81px × 81px(推荐) +- 格式:PNG +- 背景:透明 + +### 3. 功能完善 +- [ ] 宠物详情页面 +- [ ] 添加宠物页面 +- [ ] 宠物记录功能 +- [ ] AI对话功能 +- [ ] 领养信息发布 +- [ ] 微信登录集成 + +## 技术栈 + +- **前端框架**:uni-app + Vue3 +- **UI框架**:uview-next(待安装) +- **开发工具**:HBuilderX +- **部署平台**:微信小程序 + +## 开发指南 + +1. 使用HBuilderX打开项目 +2. 安装uview-next插件 +3. 添加tab图标文件 +4. 运行到微信开发者工具测试 + +## 项目特色 + +🐱 **宠物管理**:完整的宠物档案和日常记录系统 +🤖 **AI助手**:智能宠物问答和健康建议 +❤️ **领养专区**:宠物领养信息发布平台 +👤 **个人中心**:用户信息和设置管理 + +## 联系方式 + +如有问题或建议,请联系开发团队。 diff --git a/main.js b/main.js index c1caf36..f61b3c6 100644 --- a/main.js +++ b/main.js @@ -1,9 +1,11 @@ import App from './App' +import uView from 'uview-ui-next' // #ifndef VUE3 import Vue from 'vue' import './uni.promisify.adaptor' Vue.config.productionTip = false +Vue.use(uView) App.mpType = 'app' const app = new Vue({ ...App @@ -15,6 +17,7 @@ app.$mount() import { createSSRApp } from 'vue' export function createApp() { const app = createSSRApp(App) + app.use(uView) return { app } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f1da83b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,32 @@ +{ + "name": "pet-ai", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "pet-ai", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "mitt": "^3.0.1", + "uview-ui-next": "^0.0.1" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/uview-ui-next": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/uview-ui-next/-/uview-ui-next-0.0.1.tgz", + "integrity": "sha512-CGK4XPt1lYhCb+7aHgMpp6/VV1owOH67dPz52ypJ9dcVs0Ixgl5/PF0xajlel11R2yRhtRydLu6nIXs9eDZSBw==", + "license": "MIT", + "dependencies": { + "mitt": "^3.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..1505158 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "pet-ai", + "version": "1.0.0", + "description": "一个专注于宠物管理的微信小程序,提供宠物档案管理、AI助手、领养专区等功能。", + "main": "main.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "mitt": "^3.0.1", + "uview-ui-next": "^0.0.1" + } +} diff --git a/pages.json b/pages.json index 869105d..36e98da 100644 --- a/pages.json +++ b/pages.json @@ -1,5 +1,37 @@ { - "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + "pages": [ + { + "path": "pages/pets/pets", + "style": { + "navigationBarTitleText": "我的宠物", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black" + } + }, + { + "path": "pages/assistant/assistant", + "style": { + "navigationBarTitleText": "AI助手", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black" + } + }, + { + "path": "pages/adoption/adoption", + "style": { + "navigationBarTitleText": "领养专区", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black" + } + }, + { + "path": "pages/profile/profile", + "style": { + "navigationBarTitleText": "我的", + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black" + } + }, { "path": "pages/index/index", "style": { @@ -9,9 +41,47 @@ ], "globalStyle": { "navigationBarTextStyle": "black", - "navigationBarTitleText": "uni-app", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8" + "navigationBarTitleText": "宠爱小程序", + "navigationBarBackgroundColor": "#ffffff", + "backgroundColor": "#f8f9fa" + }, + "easycom": { + "autoscan": true, + "custom": { + "^u-(.*)": "uview-ui-next/components/u-$1/u-$1.vue" + } + }, + "tabBar": { + "color": "#999999", + "selectedColor": "#ff6b6b", + "backgroundColor": "#ffffff", + "borderStyle": "black", + "list": [ + { + "pagePath": "pages/pets/pets", + "text": "宠物", + "iconPath": "static/tabbar/pets.png", + "selectedIconPath": "static/tabbar/pets-active.png" + }, + { + "pagePath": "pages/assistant/assistant", + "text": "助手", + "iconPath": "static/tabbar/assistant.png", + "selectedIconPath": "static/tabbar/assistant-active.png" + }, + { + "pagePath": "pages/adoption/adoption", + "text": "领养", + "iconPath": "static/tabbar/adoption.png", + "selectedIconPath": "static/tabbar/adoption-active.png" + }, + { + "pagePath": "pages/profile/profile", + "text": "我的", + "iconPath": "static/tabbar/profile.png", + "selectedIconPath": "static/tabbar/profile-active.png" + } + ] }, "uniIdRouter": {} } diff --git a/pages/adoption/adoption.vue b/pages/adoption/adoption.vue new file mode 100644 index 0000000..eeb5084 --- /dev/null +++ b/pages/adoption/adoption.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/pages/assistant/assistant.vue b/pages/assistant/assistant.vue new file mode 100644 index 0000000..bc86fab --- /dev/null +++ b/pages/assistant/assistant.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/pages/pets/pets.vue b/pages/pets/pets.vue new file mode 100644 index 0000000..1e1dba9 --- /dev/null +++ b/pages/pets/pets.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/pages/profile/profile.vue b/pages/profile/profile.vue new file mode 100644 index 0000000..66dd0b9 --- /dev/null +++ b/pages/profile/profile.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/static/tabbar/adoption-active.png b/static/tabbar/adoption-active.png new file mode 100644 index 0000000..9dc248c Binary files /dev/null and b/static/tabbar/adoption-active.png differ diff --git a/static/tabbar/adoption.png b/static/tabbar/adoption.png new file mode 100644 index 0000000..253c797 Binary files /dev/null and b/static/tabbar/adoption.png differ diff --git a/static/tabbar/assistant-active.png b/static/tabbar/assistant-active.png new file mode 100644 index 0000000..64a015e Binary files /dev/null and b/static/tabbar/assistant-active.png differ diff --git a/static/tabbar/assistant.png b/static/tabbar/assistant.png new file mode 100644 index 0000000..1311f27 Binary files /dev/null and b/static/tabbar/assistant.png differ diff --git a/static/tabbar/pets-active.png b/static/tabbar/pets-active.png new file mode 100644 index 0000000..5451d59 Binary files /dev/null and b/static/tabbar/pets-active.png differ diff --git a/static/tabbar/pets.png b/static/tabbar/pets.png new file mode 100644 index 0000000..ae70e66 Binary files /dev/null and b/static/tabbar/pets.png differ diff --git a/static/tabbar/profile-active.png b/static/tabbar/profile-active.png new file mode 100644 index 0000000..58718f8 Binary files /dev/null and b/static/tabbar/profile-active.png differ diff --git a/static/tabbar/profile.png b/static/tabbar/profile.png new file mode 100644 index 0000000..1ade7f5 Binary files /dev/null and b/static/tabbar/profile.png differ diff --git a/uni.scss b/uni.scss index b9249e9..85e17f3 100644 --- a/uni.scss +++ b/uni.scss @@ -74,3 +74,6 @@ $uni-color-subtitle: #555555; // 二级标题颜色 $uni-font-size-subtitle:26px; $uni-color-paragraph: #3F536E; // 文章段落颜色 $uni-font-size-paragraph:15px; + +/* uView UI主题变量 */ +@import "uview-ui-next/theme.scss";