Files
yuezi-saas/docs/api-check-report.md
T
li ee2b1757d0 feat: 员工自助注册+审核流程
- 新增 registration_packages 表:管理员配置注册套餐(名称/角色)
- AuthController 新增 register() 和 registrationPackages() 公开接口
- UserController 新增 approve() / reject() 审核接口
- StoreController 新增 publicList() 公开门店列表
- 前端 /register 注册页:选门店→选岗位套餐→填信息→提交
- 前端 system/registration-packages:套餐 CRUD
- 用户管理页:待审核状态展示 + 通过/拒绝快捷操作
- 登录页底部加「申请注册」跳转链接
- 路由白名单加 /register
2026-03-14 17:39:50 +08:00

122 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 前后端接口联调检查报告
> 生成时间:2026-03-14
> 检查范围:前端 `src/api/*.js` ↔ 后端 `routes/api.php`
---
## 总体评估
| 模块 | 状态 | 备注 |
|------|------|------|
| 系统设置 | ✅ 完全匹配 | |
| CRM | ✅ 完全匹配 | |
| 房务 Room | ✅ 完全匹配 | |
| 护理 Care | ✅ 已修复 | resolve→handle别名修复;healthMetric.delete移除 |
| 月子餐 Meal | ⚠️ 部分匹配 | getDetail不存在后端路由(见下) |
| 服务产康 Service | ✅ 已修复 | complete方法移除,统一用finish |
| 月嫂 Nanny | ✅ 完全匹配 | |
| 进销存 Inventory | ✅ 已修复 | stock/transfers/checks 3个Controller已创建,迁移已执行 |
| 财务 Finance | ✅ 已修复 | paymentApi.confirm→audit |
| 人事 HR | ✅ 完全匹配 | |
| 办公协同 Office | ✅ 完全匹配 | 审批流引擎已升级 |
| 报表 Report | ✅ 完全匹配 | |
| 知识库 KB | ✅ 完全匹配 | |
---
## 已修复问题
### ✅ care.js — careExceptionApi.resolve 路径修复
- **问题**:前端调用 `PUT /care/exceptions/{id}/resolve`,后端只有 `/handle`
- **修复**:将 `resolve` 方法改为指向 `/handle` 的别名
### ✅ care.js — healthMetricApi.delete 移除
- **问题**:前端调用 `DELETE /care/health-metrics/{id}`,后端无此路由
- **修复**:移除该方法(健康指标不支持前端删除)
### ✅ finance.js — paymentApi.confirm 改名
- **问题**:前端调用 `PUT /finance/records/{id}/confirm`,后端路由为 `/audit`
- **修复**:方法改为 `audit`,路径对齐
### ✅ service.js — serviceExecutionApi.complete 移除
- **问题**:前端有 `complete` 方法调用 `/complete`,后端无此路由(只有 `/finish`
- **修复**:移除 `complete`,使用 `finish` 统一
---
## 已补充后端(2026-03-14 完成)
### ✅ inventory — 库存台账 (stock)
- `StockController` 已创建,基于 `inventories` 表聚合,支持 `low_stock` 过滤
- 路由:`GET /inventory/stock`, `GET /inventory/stock/export`
### ✅ inventory — 调拨管理 (transfers)
- `TransferOrderController` 已创建,`transfer_orders` 表已迁移
- confirm 时自动更新双仓库库存(事务保护)
- 路由:GET/POST/GET{id}/confirm/cancel
### ✅ inventory — 盘点管理 (checks)
- `InventoryCheckController` 已创建,`inventory_checks` 表已迁移
- complete 时按实际数量修正 inventories 表(事务保护)
- 路由:GET/POST/GET{id}/complete
---
## 其他注意事项
### meal.js — mealReviewApi.getDetail
- 后端 `/meal/reviews` 只有 `GET list``POST create`,无 `GET {id}`
- 前端 `getDetail` 方法存在但暂时用不到(reviews 页面未调用),低优先级
### request.js baseURL
- 配置 `baseURL: '/api/v1'` ✅ 与后端路由前缀一致
### 认证
- 所有请求通过 `Authorization: Bearer {token}` 传递,与 Sanctum 配置一致 ✅
---
## 全链路修复记录(2026-03-14
### P0 — 运行时必崩(已修复)
| 文件 | 问题 | 修复 |
|------|------|------|
| `views/finance/payments/index.vue` | `paymentApi.confirm` 不存在 | 改为 `paymentApi.audit` |
| `views/service/executions/index.vue` | `serviceExecutionApi.complete` 不存在 | 改为 `serviceExecutionApi.finish` |
| `views/meal/reviews/index.vue` | `mealReviewApi.getDetail` 不存在且后端无路由 | 直接用行数据 `row` 展示详情 |
| `views/care/health-metrics/index.vue` | `healthMetricApi.delete` 不存在 | 改为本地 filter 移除 |
### P1 — 系统模块整体404(已修复)
| 文件 | 问题 | 修复 |
|------|------|------|
| `api/system.js` - `dictApi` | 全部使用 `/dict-types`,后端路由是 `/dictionaries` | 重写 dictApi 路径,item 操作签名适配 |
| `api/system.js` - `userApi.resetPassword` | POST `/reset-password`,后端是 PUT `/password` | 改为 `put` + 正确路径 |
| `api/system.js` - `userApi.updateStatus` | PATCH,后端是 PUT | 改为 `put` |
| `api/system.js` - `roleApi.assignPermissions` | POST,后端是 PUT | 改为 `put` |
| `api/system.js` - `roleApi.getPermissions` | 后端无此子路由 | 删除此方法 |
### P2 — except(['show']) 导致404(已修复)
| 文件 | 问题 | 修复 |
|------|------|------|
| `api/system.js` - `departmentApi` | `getDetail`/`getTree` 后端无路由 | 删除;页面改用行数据 + `getList`+本地buildTree |
| `api/system.js` - `positionApi` | `getDetail` 后端无路由 | 删除;页面改用行数据 |
| `api/system.js` - `menuApi` | `getDetail`/`getTree` 后端无路由 | 删除;页面改用行数据 + `getList`+本地buildTree |
| `api/system.js` - `permissionApi` | `getDetail`/`getTree` 后端无路由 | 删除;roles页改用 `getList`+本地buildTree |
| `api/system.js` - `logApi` | `getDetail` 后端无路由 | 删除此方法 |
### 页面联动修复
- `views/system/departments/index.vue`: `getTree``getList`+`buildTree``getDetail` → 用行数据
- `views/system/menus/index.vue`: `getTree``getList`+`buildTree``getDetail` → 用行数据
- `views/system/positions/index.vue`: `getDetail` → 用行数据
- `views/system/users/index.vue`: `departmentApi.getTree``getList`(平铺列表)
- `views/system/roles/index.vue`: `permissionApi.getTree``getList`+`buildPermTree``getPermissions``getDetail.permissions`
- `views/system/dictionaries/index.vue`: 适配新 dictApi 签名(路径/参数全部对齐)
| 优先级 | 任务 | 状态 |
|--------|------|------|
| P1 | 执行 migration: `php artisan migrate`(审批节点字段扩展) | ✅ 已完成 |
| P2 | 创建 inventory transfers/checks 后端 Controller + Migration | ✅ 已完成 |
| P3 | 完善 inventory stock 聚合查询接口 | ✅ 已完成 |
| P4 | 补充 meal/reviews/{id} 详情接口(低优) | ⏳ 待处理 |