# 强宝爱记账前端 基于 uni-app + Vue 3 开发的记账应用前端项目。 ## 功能特性 - ✅ 用户登录/注册 - ✅ 手动记账 - ✅ OCR识别记账(支持截图识别金额) - ✅ 账单列表展示(按日期分组) - ✅ 统计功能(按日/周/月统计) - ✅ 分类管理 ## 技术栈 - **框架**: uni-app + Vue 3 - **状态管理**: Pinia - **UI组件**: uni-ui - **HTTP请求**: uni.request 封装 ## 项目结构 ``` frontend/ ├── pages/ # 页面 │ ├── login/ # 登录页 │ ├── index/ # 首页(账单列表) │ ├── add/ # 添加账单 │ └── statistics/ # 统计页 ├── api/ # API接口封装 │ ├── auth.js # 认证接口 │ ├── bill.js # 账单接口 │ ├── category.js # 分类接口 │ ├── statistics.js # 统计接口 │ └── ocr.js # OCR接口 ├── store/ # Pinia状态管理 │ └── user.js # 用户状态 ├── utils/ # 工具函数 │ ├── request.js # HTTP请求封装 │ └── date.js # 日期工具 ├── static/ # 静态资源 ├── App.vue # 应用根组件 ├── main.js # 入口文件 └── pages.json # 页面配置 ``` ## 开发说明 ### 环境要求 - Node.js >= 14 - HBuilderX(推荐)或 uni-app CLI ### 安装依赖 ```bash npm install ``` ### 运行项目 #### HBuilderX 1. 使用 HBuilderX 打开项目 2. 选择运行 -> 运行到浏览器 -> Chrome #### CLI ```bash npm run dev:h5 ``` ### 配置后端API地址 修改 `utils/request.js` 中的 `BASE_URL`: ```javascript const BASE_URL = process.env.NODE_ENV === 'development' ? 'http://localhost:8080/api' // 开发环境 : 'https://your-api-domain.com/api' // 生产环境 ``` ## 页面说明 ### 登录页 (`pages/login/login.vue`) - 支持登录和注册 - 自动保存token和用户信息 - 登录成功后跳转到首页 ### 首页 (`pages/index/index.vue`) - 显示本月收支统计 - 账单列表按日期分组展示 - 支持下拉刷新 - 点击账单可查看详情(待完善) ### 添加账单页 (`pages/add/add.vue`) - **手动记账**: 手动输入分类、金额、日期、备注 - **OCR识别**: - 选择图片(相机/相册) - 上传识别 - 自动填充金额、商户、日期 - 可手动修改识别结果 ### 统计页 (`pages/statistics/statistics.vue`) - 按日/周/月切换统计 - 显示总收入、总支出、余额 - 分类统计展示(带进度条) ## API接口 ### 认证接口 - `POST /api/auth/register` - 注册 - `POST /api/auth/login` - 登录 ### 账单接口 - `GET /api/bills` - 获取账单列表 - `POST /api/bills` - 创建账单 - `GET /api/bills/:id` - 获取账单详情 - `PUT /api/bills/:id` - 更新账单 - `DELETE /api/bills/:id` - 删除账单 ### 分类接口 - `GET /api/categories` - 获取分类列表 - `POST /api/categories` - 创建分类 - `PUT /api/categories/:id` - 更新分类 - `DELETE /api/categories/:id` - 删除分类 ### 统计接口 - `GET /api/statistics/daily` - 按日统计 - `GET /api/statistics/weekly` - 按周统计 - `GET /api/statistics/monthly` - 按月统计 ### OCR接口 - `POST /api/ocr/recognize` - OCR识别 ## 注意事项 1. **登录状态**: 所有页面都会检查登录状态,未登录会自动跳转到登录页 2. **Token管理**: Token存储在本地存储中,过期后会自动跳转登录 3. **图片上传**: OCR功能需要上传图片,注意图片大小限制 4. **平台差异**: 注意H5和App平台的API差异,部分功能可能需要平台判断 ## 待完善功能 - [ ] 账单编辑功能 - [ ] 账单删除功能 - [ ] 分类管理页面 - [ ] 账单详情页面 - [ ] 图表展示(echarts集成)