# 记账功能模块文档 ## 概述 记账功能模块提供了完整的多用户多家庭记账功能,支持: - 多家庭管理(每个用户可以加入多个家庭) - 家庭成员管理(owner/admin/member角色) - 收支记录管理 - 账户管理 - 数据权限控制 ## 模块架构 本模块采用Laravel模块化架构,所有代码位于 `modules/Account` 目录下: ``` modules/Account/ ├── app/ │ ├── Controllers/ │ │ ├── Api/ # 前端API控制器 │ │ └── Admin/ # 后台管理控制器 │ ├── Models/ # 数据模型 │ ├── Providers/ # 服务提供者 │ └── Services/ # 业务逻辑服务层 ├── database/ │ └── migrations/ # 数据库迁移文件 ├── routes/ │ ├── api.php # 前端API路由 │ └── admin.php # 后台管理路由 └── module.json # 模块配置文件 ``` ### 命名空间 - 模型:`Modules\Account\Models\` - 控制器:`Modules\Account\Controllers\Api\` 或 `Modules\Account\Controllers\Admin\` - 服务:`Modules\Account\Services\` - 路由:自动加载,无需手动配置 ### 路由说明 模块路由已自动注册,无需在主路由文件中配置: - 前端API路由位于 `modules/Account/routes/api.php` - 后台管理路由位于 `modules/Account/routes/admin.php` 所有路由由模块的 RouteServiceProvider 自动加载。 ## 数据库表结构 ### 1. account_families(家庭表) | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | name | varchar(50) | 家庭名称 | | description | text | 家庭描述 | | avatar | varchar(255) | 家庭头像 | | created_at | datetime | 创建时间 | | updated_at | datetime | 更新时间 | | deleted_at | datetime | 删除时间(软删除) | ### 2. account_family_members(家庭成员关系表) | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | family_id | bigint | 家庭ID | | user_id | bigint | 用户ID | | role | varchar(20) | 角色:owner-拥有者,admin-管理员,member-成员 | | created_at | datetime | 创建时间 | | updated_at | datetime | 更新时间 | | deleted_at | datetime | 删除时间(软删除) | **唯一索引**: `family_id` + `user_id`(防止重复加入) ### 3. account_records(记账记录表) | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | user_id | bigint | 用户ID | | family_id | bigint | 家庭ID | | member_id | bigint | 成员ID | | account_id | bigint | 账户ID | | type | varchar(20) | 类型:income-收入,expense-支出 | | amount | decimal(10,2) | 金额 | | category | varchar(50) | 分类 | | date | date | 日期 | | time | varchar(10) | 时间 | | remark | text | 备注 | | created_at | datetime | 创建时间 | | updated_at | datetime | 更新时间 | | deleted_at | datetime | 删除时间(软删除) | ### 2. account_members(家庭成员表) | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | user_id | bigint | 用户ID | | family_id | bigint | 家庭ID | | name | varchar(50) | 成员名称 | | avatar | varchar(255) | 头像 | | created_at | datetime | 创建时间 | | updated_at | datetime | 更新时间 | | deleted_at | datetime | 删除时间(软删除) | ### 3. accounts(账户表) | 字段 | 类型 | 说明 | |------|------|------| | id | bigint | 主键ID | | user_id | bigint | 用户ID | | family_id | bigint | 家庭ID | | name | varchar(50) | 账户名称 | | type | varchar(20) | 账户类型:cash-现金,bank-银行卡,alipay-支付宝,wechat-微信 | | balance | decimal(10,2) | 余额 | | icon | varchar(255) | 图标 | | created_at | datetime | 创建时间 | | updated_at | datetime | 更新时间 | | deleted_at | datetime | 删除时间(软删除) | ## 前端API接口 ### 基础URL `/api/account` ### 记账记录接口 #### 1. 获取记账记录列表 - **路径**: `GET /api/account/records` - **认证**: 需要 - **参数**: - `family_id` (可选): 家庭ID,不传则返回当前用户所有家庭的记录 - `member_id` (可选): 成员ID - `account_id` (可选): 账户ID - `type` (可选): 类型(income/expense) - `start_date` (可选): 开始日期 - `end_date` (可选): 结束日期 - `page` (可选): 页码 - `limit` (可选): 每页数量,默认30 - **响应**: ```json { "code": 1, "message": "success", "data": { "list": [...], "total": 100 } } ``` #### 2. 获取记账记录详情 - **路径**: `GET /api/account/records/{id}` - **认证**: 需要 - **响应**: 单条记录详情 #### 3. 创建记账记录 - **路径**: `POST /api/account/records` - **认证**: 需要 - **参数**: - `member_id` (必需): 成员ID - `account_id` (必需): 账户ID - `type` (必需): 类型(income/expense) - `amount` (必需): 金额 - `category` (必需): 分类 - `date` (必需): 日期 - `time` (必需): 时间 - `remark` (可选): 备注 - **响应**: 创建的记录 #### 4. 更新记账记录 - **路径**: `PUT /api/account/records/{id}` - **认证**: 需要 - **参数**: 同创建接口(所有字段可选) - **响应**: 更新后的记录 #### 5. 删除记账记录 - **路径**: `DELETE /api/account/records/{id}` - **认证**: 需要 - **响应**: 删除成功 #### 6. 获取统计数据 - **路径**: `GET /api/account/records/statistics` - **认证**: 需要 - **参数**: - `start_date` (可选): 开始日期 - `end_date` (可选): 结束日期 - **响应**: ```json { "code": 1, "message": "success", "data": { "total_income": 10000.00, "total_expense": 5000.00, "balance": 5000.00, "category_stats": [...], "date_stats": [...] } } ``` ### 家庭管理接口 #### 1. 获取用户的家庭列表 - **路径**: `GET /api/account/families` - **认证**: 需要 - **响应**: ```json { "code": 1, "message": "success", "data": { "list": [ { "id": 1, "name": "我的家", "description": "温馨的家", "avatar": "avatar.jpg", "user_role": "owner", "is_owner": true, "can_manage": true, "family_members": [...], "created_at": "2025-01-01 00:00:00" } ], "total": 1 } } ``` #### 2. 获取家庭详情 - **路径**: `GET /api/account/families/{id}` - **认证**: 需要 - **权限**: 用户必须属于该家庭 - **响应**: 家庭详情(包含成员、账户、记录信息) #### 3. 创建家庭 - **路径**: `POST /api/account/families` - **认证**: 需要 - **参数**: - `name` (必需): 家庭名称(最多50字符) - `description` (可选): 家庭描述(最多255字符) - `avatar` (可选): 家庭头像 - **响应**: 创建的家庭(创建者自动成为owner) #### 4. 更新家庭 - **路径**: `PUT /api/account/families/{id}` - **认证**: 需要 - **权限**: owner或admin - **参数**: 同创建接口(所有字段可选) - **响应**: 更新后的家庭 #### 5. 删除家庭 - **路径**: `DELETE /api/account/families/{id}` - **认证**: 需要 - **权限**: 仅owner - **限制**: 家庭下不能有关联账户 - **响应**: 删除成功 #### 6. 邀请成员加入家庭 - **路径**: `POST /api/account/families/{familyId}/invite` - **认证**: 需要 - **权限**: owner或admin - **参数**: - `user_id` (必需): 被邀请用户ID - **限制**: 用户不能已经在家庭中 - **响应**: 邀请成功 #### 7. 移除家庭成员 - **路径**: `DELETE /api/account/families/{familyId}/members/{memberId}` - **认证**: 需要 - **权限**: owner或admin - **限制**: 不能移除owner - **响应**: 移除成功 #### 8. 更新成员角色 - **路径**: `PUT /api/account/families/{familyId}/members/{memberId}/role` - **认证**: 需要 - **权限**: 仅owner - **参数**: - `role` (必需): 新角色(owner/admin/member) - **限制**: 不能修改owner的角色 - **响应**: 更新成功 #### 9. 退出家庭 - **路径**: `POST /api/account/families/{id}/leave` - **认证**: 需要 - **限制**: owner不能退出,只能删除家庭 - **响应**: 退出成功 ### 家庭成员接口 #### 1. 获取成员列表 - **路径**: `GET /api/account/members` - **认证**: 需要 - **参数**: - `family_id` (可选): 家庭ID,不传则返回当前用户所有家庭的成员 - **响应**: ```json { "code": 1, "message": "success", "data": { "list": [...], "total": 10 } } ``` #### 2. 获取成员详情 - **路径**: `GET /api/account/members/{id}` - **认证**: 需要 - **响应**: 成员详情 #### 3. 创建成员 - **路径**: `POST /api/account/members` - **认证**: 需要 - **参数**: - `name` (必需): 成员名称 - `avatar` (可选): 头像 - **响应**: 创建的成员 #### 4. 更新成员 - **路径**: `PUT /api/account/members/{id}` - **认证**: 需要 - **参数**: 同创建接口(所有字段可选) - **响应**: 更新后的成员 #### 5. 删除成员 - **路径**: `DELETE /api/account/members/{id}` - **认证**: 需要 - **响应**: 删除成功 ### 账户管理接口 #### 1. 获取账户列表 - **路径**: `GET /api/account/accounts` - **认证**: 需要 - **参数**: - `family_id` (可选): 家庭ID,不传则返回当前用户所有家庭的账户 - **响应**: ```json { "code": 1, "message": "success", "data": { "list": [...], "total": 5, "total_balance": 10000.00 } } ``` #### 2. 获取账户详情 - **路径**: `GET /api/account/accounts/{id}` - **认证**: 需要 - **响应**: 账户详情 #### 3. 创建账户 - **路径**: `POST /api/account/accounts` - **认证**: 需要 - **参数**: - `name` (必需): 账户名称 - `type` (必需): 账户类型(cash/bank/alipay/wechat) - `balance` (可选): 初始余额 - `icon` (可选): 图标 - **响应**: 创建的账户 #### 4. 更新账户 - **路径**: `PUT /api/account/accounts/{id}` - **认证**: 需要 - **参数**: 同创建接口(所有字段可选) - **响应**: 更新后的账户 #### 5. 删除账户 - **路径**: `DELETE /api/account/accounts/{id}` - **认证**: 需要 - **响应**: 删除成功 #### 6. 重新计算账户余额 - **路径**: `POST /api/account/accounts/{id}/recalculate` - **认证**: 需要 - **响应**: 更新后的账户 ## 后台管理接口 ### 基础URL `/admin/account` ### 记账记录管理 #### 1. 获取记账记录列表 - **路径**: `GET /admin/account/records/index` - **认证**: 需要 - **参数**: 同前端API,额外支持 - `user_id` (可选): 用户ID - **响应**: 记录列表(包含用户、成员、账户信息) #### 2. 获取记账记录详情 - **路径**: `GET /admin/account/records/show` - **认证**: 需要 - **响应**: 记录详情 #### 3. 删除记账记录 - **路径**: `DELETE /admin/account/records/delete` - **认证**: 需要 - **参数**: `id` (必需): 记录ID - **响应**: 删除成功(软删除) #### 4. 恢复记账记录 - **路径**: `PUT /admin/account/records/restore` - **认证**: 需要 - **参数**: `id` (必需): 记录ID - **响应**: 恢复成功 #### 5. 获取统计数据 - **路径**: `GET /admin/account/records/statistics` - **认证**: 需要 - **参数**: - `user_id` (可选): 用户ID - `start_date` (可选): 开始日期 - `end_date` (可选): 结束日期 - **响应**: ```json { "code": 1, "message": "success", "data": { "total_income": 10000.00, "total_expense": 5000.00, "balance": 5000.00, "user_stats": [...], "category_stats": [...], "total_records": 100 } } ``` ### 家庭成员管理 #### 1. 获取成员列表 - **路径**: `GET /admin/account/members/index` - **认证**: 需要 - **参数**: - `user_id` (可选): 用户ID - **响应**: 成员列表(包含统计信息) #### 2. 获取成员详情 - **路径**: `GET /admin/account/members/show` - **认证**: 需要 - **参数**: `id` (必需): 成员ID - **响应**: 成员详情(包含关联记录) #### 3. 创建成员 - **路径**: `POST /admin/account/members/add` - **认证**: 需要 - **参数**: - `user_id` (必需): 用户ID - `name` (必需): 成员名称 - `avatar` (可选): 头像 - **响应**: 创建的成员 #### 4. 更新成员 - **路径**: `PUT /admin/account/members/edit` - **认证**: 需要 - **参数**: - `id` (必需): 成员ID - 其他字段同创建接口 - **响应**: 更新后的成员 #### 5. 删除成员 - **路径**: `DELETE /admin/account/members/delete` - **认证**: 需要 - **参数**: `id` (必需): 成员ID - **响应**: 删除成功(软删除) #### 6. 恢复成员 - **路径**: `PUT /admin/account/members/restore` - **认证**: 需要 - **参数**: `id` (必需): 成员ID - **响应**: 恢复成功 ### 账户管理 #### 1. 获取账户列表 - **路径**: `GET /admin/account/accounts/index` - **认证**: 需要 - **参数**: - `user_id` (可选): 用户ID - `type` (可选): 账户类型 - **响应**: 账户列表(包含统计信息) #### 2. 获取账户详情 - **路径**: `GET /admin/account/accounts/show` - **认证**: 需要 - **参数**: `id` (必需): 账户ID - **响应**: 账户详情(包含关联记录) #### 3. 创建账户 - **路径**: `POST /admin/account/accounts/add` - **认证**: 需要 - **参数**: - `user_id` (必需): 用户ID - `name` (必需): 账户名称 - `type` (必需): 账户类型 - `balance` (可选): 初始余额 - `icon` (可选): 图标 - **响应**: 创建的账户 #### 4. 更新账户 - **路径**: `PUT /admin/account/accounts/edit` - **认证**: 需要 - **参数**: - `id` (必需): 账户ID - 其他字段同创建接口 - **响应**: 更新后的账户 #### 5. 删除账户 - **路径**: `DELETE /admin/account/accounts/delete` - **认证**: 需要 - **参数**: `id` (必需): 账户ID - **响应**: 删除成功(软删除) #### 6. 恢复账户 - **路径**: `PUT /admin/account/accounts/restore` - **认证**: 需要 - **参数**: `id` (必需): 账户ID - **响应**: 恢复成功 #### 7. 重新计算账户余额 - **路径**: `POST /admin/account/accounts/recalculate` - **认证**: 需要 - **参数**: `id` (必需): 账户ID - **响应**: 更新后的账户 #### 8. 获取账户类型列表 - **路径**: `GET /admin/account/accounts/types` - **认证**: 需要 - **响应**: ```json { "code": 1, "message": "success", "data": { "cash": "现金", "bank": "银行卡", "alipay": "支付宝", "wechat": "微信" } } ``` ## 后台管理系统 ### 概述 后台管理系统提供了完整的管理功能,位于 `resources/admin` 目录下,使用 Vue 3 + Element Plus + Vite 技术栈。 ### 目录结构 ``` resources/admin/src/ ├── api/ │ ├── module/ │ │ └── account.js # 记账模块API接口 │ └── index.js # API自动导入 ├── pages/ │ └── account/ # 记账模块页面 │ ├── families/ # 家庭管理 │ ├── accounts/ # 账户管理 │ ├── members/ # 成员管理 │ └── records/ # 记录管理 └── router/ ├── accountRouter.js # 记账模块路由 └── index.js # 路由主文件 ``` ### 功能模块 #### 1. 家庭管理 (`/account/families`) **功能特性**: - 家庭列表展示(支持搜索) - 查看家庭详情 - 创建/编辑家庭 - 删除家庭(含确认提示) - 显示成员数量和账户数量统计 **页面组件**: - `index.vue`: 家庭列表页 - `save.vue`: 家庭添加/编辑/查看页 **搜索条件**: - 家庭名称 **操作权限**: - 添加家庭 - 编辑家庭信息 - 查看家庭详情 - 删除家庭 #### 2. 账户管理 (`/account/accounts`) **功能特性**: - 账户列表展示(支持搜索和筛选) - 查看账户详情 - 创建/编辑账户 - 删除账户(含确认提示) - 显示账户余额(正数绿色,负数红色) - 支持多种账户类型(现金、银行卡、信用卡、支付宝、微信等) **页面组件**: - `index.vue`: 账户列表页 - `save.vue`: 账户添加/编辑/查看页 **搜索条件**: - 账户名称 - 账户类型 **表单字段**: - 账户名称(必填,2-50字符) - 账户类型(必填) - 所属家庭(必填,下拉选择) - 初始余额(可选,数字) - 备注(可选,最多200字符) #### 3. 成员管理 (`/account/members`) **功能特性**: - 成员列表展示(支持搜索和筛选) - 查看成员详情 - 添加/编辑成员 - 移除成员(含确认提示) - 显示成员角色(owner/admin/member) - 显示成员所属家庭 **页面组件**: - `index.vue`: 成员列表页 - `save.vue`: 成员添加/编辑/查看页 **搜索条件**: - 成员昵称 - 成员角色 **表单字段**: - 所属家庭(必填,下拉选择) - 用户手机号(必填,用于查找用户) - 角色(必填,下拉选择) - 自动显示用户详细信息 **角色说明**: - owner(家庭主):最高权限,红色标签 - admin(管理员):管理权限,橙色标签 - member(成员):普通权限,蓝色标签 #### 4. 记录管理 (`/account/records`) **功能特性**: - 记录列表展示(支持搜索和筛选) - 查看记录详情 - 创建/编辑记录 - 删除记录(含确认提示) - 显示金额(收入绿色+号,支出红色-号) - 显示记录类型(收入/支出标签) - 支持日期范围筛选 **页面组件**: - `index.vue`: 记录列表页 - `save.vue`: 记录添加/编辑/查看页 **搜索条件**: - 关键词 - 记录类型(收入/支出) - 日期范围 **表单字段**: - 记录类型(必填,单选:收入/支出) - 所属家庭(必填,下拉选择) - 账户(必填,下拉选择,根据家庭筛选) - 分类(必填,下拉选择,根据记录类型筛选) - 金额(必填,数字) - 日期(必填,日期选择器) - 备注(可选,最多200字符) **联动功能**: - 选择家庭后,自动加载该家庭的账户列表 - 切换记录类型后,自动筛选对应的分类列表 ### API接口封装 所有API接口统一封装在 `resources/admin/src/api/module/account.js` 中: ```javascript // 家庭管理 this.$API.account.family.list.get(params) this.$API.account.family.detail.get(params) this.$API.account.family.add.post(params) this.$API.account.family.edit.post(params) this.$API.account.family.delete.post(params) // 账户管理 this.$API.account.accounts.list.get(params) this.$API.account.accounts.detail.get(params) this.$API.account.accounts.add.post(params) this.$API.account.accounts.edit.post(params) this.$API.account.accounts.delete.post(params) // 成员管理 this.$API.account.members.list.get(params) this.$API.account.members.detail.get(params) this.$API.account.members.add.post(params) this.$API.account.members.edit.post(params) this.$API.account.members.delete.post(params) // 记录管理 this.$API.account.records.list.get(params) this.$API.account.records.detail.get(params) this.$API.account.records.add.post(params) this.$API.account.records.edit.post(params) this.$API.account.records.delete.post(params) ``` ### 路由配置 记账模块路由已配置在 `resources/admin/src/router/accountRouter.js`: ```javascript { path: "/account", meta: { title: "记账管理", icon: "el-icon-wallet" }, children: [ { path: "/account/families", meta: { title: "家庭管理", icon: "el-icon-house" } }, { path: "/account/accounts", meta: { title: "账户管理", icon: "el-icon-bank-card" } }, { path: "/account/members", meta: { title: "成员管理", icon: "el-icon-user" } }, { path: "/account/records", meta: { title: "记录管理", icon: "el-icon-notebook-2" } } ] } ``` 路由已自动注册到主路由文件 `index.js`,无需额外配置。 ### 通用功能 #### 表格组件 使用 `scTable` 组件实现统一的表格功能: - 自动分页 - 自动加载 - 参数搜索 - 行选择 - 固定列 #### 抽屉组件 使用 `el-drawer` 组件实现表单弹窗: - 三种模式:add(添加)、edit(编辑)、show(查看) - 表单验证 - 关闭时自动重置 - 成功回调刷新列表 #### 权限控制 所有删除操作都使用 `el-popconfirm` 进行二次确认: - 防止误删除 - 支持取消操作 - 显示确认提示文字 #### 数据展示 - 金额显示:保留2位小数,根据正负值显示不同颜色 - 日期显示:统一格式化 - 角色标签:使用不同颜色区分 - 头像显示:支持头像上传和展示 ### 使用说明 #### 1. 启动开发服务器 ```bash cd resources/admin npm install npm run dev ``` #### 2. 访问后台 启动后访问:`http://localhost:5173` #### 3. 登录系统 使用管理员账号登录后台系统。 #### 4. 使用记账功能 1. 点击左侧菜单"记账管理" 2. 选择子菜单进行操作: - 家庭管理:管理所有家庭信息 - 账户管理:管理所有账户信息 - 成员管理:管理所有家庭成员 - 记录管理:管理所有收支记录 #### 5. 数据流转 ``` 创建家庭 → 添加成员 → 创建账户 → 记录收支 ``` **注意事项**: - 必须先创建家庭,才能添加成员和账户 - 创建账户时必须选择所属家庭 - 创建记录时必须选择家庭、账户和成员 - 所有删除操作都有确认提示 ## 使用说明 ### 数据库迁移 运行以下命令创建数据库表: ```bash php artisan migrate ``` ### 多家庭架构 本模块支持多用户多家庭架构: #### 数据隔离 - 每个用户可以加入多个家庭 - 每个家庭有独立的成员、账户和记录 - 所有数据通过`family_id`字段关联到具体家庭 - 用户只能访问自己所属家庭的数据 #### 家庭角色权限 | 角色 | 创建/编辑家庭 | 邀请成员 | 移除成员 | 修改角色 | 删除家庭 | 退出家庭 | |------|--------------|---------|---------|---------|---------|---------| | owner | ✅ | ✅ | ✅(不能移除owner) | ✅(不能修改owner) | ✅ | ❌(只能删除) | | admin | ✅ | ✅ | ✅(不能移除owner) | ❌ | ❌ | ✅ | | member | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | #### 权限判断方法 AccountFamilyMember模型提供以下权限判断方法: ```php // 判断是否是拥有者 $member->isOwner(); // 判断是否是管理员 $member->isAdmin(); // 判断是否有管理权限(owner或admin) $member->hasManagePermission(); ``` ### 账户余额自动更新 系统会自动维护账户余额: - 创建收入记录时,账户余额增加 - 创建支出记录时,账户余额减少 - 更新记录时,自动调整相关账户余额 - 删除记录时,自动回滚账户余额 ### 软删除 所有数据表都支持软删除: - 删除操作不会物理删除数据,只是标记为已删除 - 后台管理可以查看和恢复已删除的数据 - 永久删除需要额外操作 ### 数据验证 所有接口都有严格的数据验证: - 必填字段检查 - 数据类型验证 - 业务逻辑验证(如删除成员前检查是否有关联记录) ## 注意事项 1. 所有接口都需要认证(除登录接口外) 2. 前端API只能操作当前登录用户及其所属家庭的数据 3. 后台API可以操作所有用户的数据 4. 每个请求都应该指定`family_id`来操作特定家庭的数据 5. 账户余额建议使用重新计算接口进行校准 6. 删除成员或账户前,系统会检查是否有关联记录 7. 家庭拥有者不能退出家庭,只能删除家庭 8. 删除家庭前,必须先删除或转移该家庭下的所有账户 9. 修改成员角色需要谨慎操作,可能影响其他成员的权限 ## 多家庭使用示例 ### 创建家庭并邀请成员 ```javascript // 1. 创建家庭 const family = await familyApi.createFamily({ name: '温馨小家', description: '我们的家庭记账', avatar: 'avatar.jpg' }) // 2. 邀请成员(需要知道对方的用户ID) await familyApi.inviteMember(family.id, 123) // 123是被邀请用户的ID ``` ### 管理家庭成员 ```javascript // 1. 获取家庭详情 const family = await familyApi.getFamilyDetail(familyId) // 2. 修改成员角色(仅owner可以) await familyApi.updateMemberRole(familyId, memberId, 'admin') // 3. 移除成员(需要管理权限) await familyApi.removeMember(familyId, memberId) ``` ### 在记账时使用家庭 ```javascript // 创建记账记录时指定家庭ID await recordApi.createRecord({ family_id: 1, // 家庭ID member_id: 2, // 家庭成员ID account_id: 3, // 家庭账户ID type: 'expense', amount: 100, category: '餐饮', date: '2025-01-01', time: '12:00' }) ``` ### 切换家庭 ```javascript // 获取用户的所有家庭 const families = await familyApi.getFamilies() // 在应用中保存当前选择的家庭ID const currentFamilyId = families.list[0].id // 后续操作都使用这个family_id ```