# 家庭记账APP - 前端开发文档 ## 项目概述 这是一个基于 uni-app 框架开发的跨平台家庭记账应用前端,支持个人记账和家庭共享记账功能。 ## 已实现功能 ### 1. 账单管理 - ✅ 添加账单(收入/支出) - ✅ 账单列表(按日期分组显示) - ✅ 月份切换查看 - ✅ 本月收支统计 - ✅ 多种分类(餐饮、交通、购物、娱乐等) - ✅ 支持备注和日期选择 ### 2. 家庭管理 - ✅ 创建家庭 - ✅ 加入家庭(通过邀请码) - ✅ 查看家庭信息 - ✅ 查看家庭成员列表 - ✅ 家主功能: - 生成/重新生成邀请码 - 复制邀请码 - 移除家庭成员 - ✅ 退出家庭 - ⏳ 转让家主(待实现) ### 3. 统计分析 - ✅ 收支概览(收入、支出、结余) - ✅ 月份切换 - ✅ 支出分类统计(带进度条和百分比) - ✅ 收支趋势图(最近7天) - ✅ 可视化图表展示 ### 4. 用户中心 - ✅ 登录/注册 - ✅ 个人信息管理 - ✅ 用户协议和隐私政策 ## 技术栈 - **框架**: uni-app (Vue 3) - **状态管理**: Vuex - **UI组件**: uni-ui - **HTTP请求**: luch-request - **样式**: SCSS ## 项目结构 ``` resources/mobile/ ├── api/ # API接口模块 │ ├── index.js # API自动导入 │ └── modules/ │ ├── auth.js # 认证相关API │ ├── bill.js # 账单相关API │ ├── family.js # 家庭管理API │ ├── sms.js # 短信相关API │ └── statistics.js # 统计分析API ├── components/ # 公共组件 │ ├── pages/ # 页面组件 │ └── tab-bar/ # 底部导航栏 ├── config/ # 配置文件 ├── mixins/ # 混入 │ └── auth.js # 登录验证混入 ├── pages/ # 页面 │ ├── index/ # 首页 │ ├── account/ # 账单管理 │ │ ├── bill/ # 账单页面 │ │ │ ├── add.vue # 添加账单 │ │ │ └── index.vue # 账单列表 │ │ └── statistics/ # 统计分析 │ │ └── index.vue # 统计页面 │ ├── family/ # 家庭管理 │ │ ├── index.vue # 家庭主页 │ │ ├── create.vue # 创建家庭 │ │ └── join.vue # 加入家庭 │ └── ucenter/ # 用户中心 │ ├── index.vue # 个人中心 │ ├── login/ # 登录 │ └── register/ # 注册 ├── static/ # 静态资源 ├── store/ # Vuex状态管理 │ ├── index.js # Store自动导入 │ └── modules/ │ ├── user.js # 用户状态 │ └── family.js # 家庭状态 └── utils/ # 工具函数 ├── auth.js # 认证工具 ├── request.js # HTTP请求封装 └── tool.js # 通用工具 ``` ## API接口说明 ### 账单API (`/api/bill/*`) - `GET /api/bill/list` - 获取账单列表 - `POST /api/bill/add` - 添加账单 - `POST /api/bill/edit` - 编辑账单 - `POST /api/bill/delete` - 删除账单 - `GET /api/bill/detail` - 获取账单详情 ### 家庭API (`/api/family/*`) - `GET /api/family/info` - 获取家庭信息 - `POST /api/family/create` - 创建家庭 - `POST /api/family/join` - 加入家庭 - `POST /api/family/leave` - 退出家庭 - `GET /api/family/invite-code` - 获取邀请码 - `POST /api/family/regenerate-invite-code` - 重新生成邀请码 - `POST /api/family/remove-member` - 移除家庭成员 - `GET /api/family/members` - 获取家庭成员列表 - `POST /api/family/transfer-owner` - 转让家主 ### 统计API (`/api/statistics/*`) - `GET /api/statistics/overview` - 获取统计概览 - `GET /api/statistics/trend` - 获取收支趋势 - `GET /api/statistics/category` - 获取分类统计 - `GET /api/statistics/monthly` - 获取月度报表 - `GET /api/statistics/yearly` - 获取年度报表 ## 功能特点 ### 1. 家庭管理 - 一个人只能创建或加入一个家庭 - 家主可以管理家庭成员(添加、移除) - 家主可以生成邀请码邀请成员 - 支持转让家主功能 ### 2. 账单分类 - 支出分类:餐饮、交通、购物、娱乐、医疗、教育、居住、其他 - 收入分类:工资、奖金、投资、兼职、其他 - 每个分类都有独立的图标和颜色 ### 3. 数据可视化 - 支出分类统计使用进度条展示占比 - 收支趋势使用柱状图展示最近7天数据 - 支持月份切换查看不同时间段的数据 ### 4. 用户体验 - 渐变色主题设计 - 流畅的动画效果 - 下拉刷新支持 - 加载状态提示 - 空数据友好提示 ## 开发说明 ### 环境要求 - Node.js >= 14 - HBuilderX 或 VS Code - uni-app CLI ### 安装依赖 ```bash cd resources/mobile yarn install ``` ### 运行项目 - 使用 HBuilderX 运行到不同平台 - 或使用 CLI 命令:`npm run dev:mp-weixin` (微信小程序) ### 构建项目 ```bash npm run build:mp-weixin ``` ## 注意事项 1. **API接口**: 需要后端提供对应的接口支持,返回格式统一为: ```json { "code": 200, "message": "success", "data": {} } ``` 2. **Token认证**: 所有需要登录的接口都需要在请求头中携带Token: ``` Authorization: Bearer {token} ``` 3. **家庭限制**: 用户只能加入一个家庭,后端需要验证此限制 4. **邀请码**: 邀请码建议使用10位随机字符串,确保唯一性 5. **日期格式**: 统一使用 `YYYY-MM-DD` 格式 ## 待优化功能 1. 账单编辑功能 2. 转让家主功能 3. 账单搜索和筛选 4. 导出数据功能 5. 预算管理 6. 账单提醒功能 7. 更多的统计图表(饼图、折线图等) ## 作者 molong ## 许可证 MIT