5.9 KiB
5.9 KiB
家庭记账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
安装依赖
cd resources/mobile
yarn install
运行项目
- 使用 HBuilderX 运行到不同平台
- 或使用 CLI 命令:
npm run dev:mp-weixin(微信小程序)
构建项目
npm run build:mp-weixin
注意事项
- API接口: 需要后端提供对应的接口支持,返回格式统一为:
{
"code": 200,
"message": "success",
"data": {}
}
- Token认证: 所有需要登录的接口都需要在请求头中携带Token:
Authorization: Bearer {token}
-
家庭限制: 用户只能加入一个家庭,后端需要验证此限制
-
邀请码: 邀请码建议使用10位随机字符串,确保唯一性
-
日期格式: 统一使用
YYYY-MM-DD格式
待优化功能
- 账单编辑功能
- 转让家主功能
- 账单搜索和筛选
- 导出数据功能
- 预算管理
- 账单提醒功能
- 更多的统计图表(饼图、折线图等)
作者
molong ycgpp@126.com
许可证
MIT