docs: clarify /api/carlog/* prefix + drop W3+ fitness plan
按用户反馈调整: 1. 路由前缀改成 /api/carlog/* (不再是 /api/vehicles 等) - DEV-PLAN.md Task 2.2 mount 全部加前缀 - 新增 Task 2.3.5: 前端 carlogApi helper - ARCHITECTURE.md 架构图 + 6.1/6.2 代码结构更新 - README.md 同步 2. 删除 W3+ 健身子系统计划 (用户还没决定下一子系统) - ARCHITECTURE.md W3+ 章节改成 "暂不规划" - README.md 实施路线只保留当前阶段 - DEV-PLAN.md "不做的事" 显式列出来 3. 加 Mavis review checklist (6.2/6.3/6.4) - 10 项检查清单 (DB/后端/前端/API baseURL/E2E/数据完整性) - 10 个常见坑 (JSON parse / TINYINT boolean / mount 顺序 ...) - review 通过标准
This commit is contained in:
+25
-16
@@ -32,10 +32,8 @@ i 平台是一个「生活操作系统」:单 Vue SPA + 单 Express 进程 +
|
||||
┌────────────────────────────────────────────────────────┐
|
||||
│ Express (一个进程) │
|
||||
│ ├── /api/platform/* (总设置 / 子系统管理 / Dashboard) │
|
||||
│ ├── /api/vehicles (CarLog 路由, 保持现状) │
|
||||
│ ├── /api/washes (CarLog) │
|
||||
│ ├── /api/fitness/* (将来加的 Fitness 子系统) │
|
||||
│ └── /api/reading/* (将来加的 Reading 子系统) │
|
||||
│ ├── /api/carlog/* (CarLog 子系统) │
|
||||
│ └── /api/{future}/* (将来加的子系统) │
|
||||
└────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
@@ -65,8 +63,8 @@ i 平台是一个「生活操作系统」:单 Vue SPA + 单 Express 进程 +
|
||||
|
||||
| 隔离维度 | 做法 |
|
||||
|---|---|
|
||||
| 数据 | 表前缀 `{subsystem}_*`(同一 DB 内) |
|
||||
| 路由 | 子系统自己的路径空间(`/api/{resource}` 现有;将来 `/api/fitness/*`) |
|
||||
| 数据 | 表前缀 `{subsystem}_*`(同一 DB 内;本阶段 CarLog 还没加前缀,留给将来加第二个子系统时) |
|
||||
| 路由 | 子系统自己的路径空间(`/api/carlog/*` 现有;将来 `/api/fitness/*` 等) |
|
||||
| 代码 | 子系统独立目录(`server/src/subsystems/{name}/`、`client/src/views/subsystems/{name}/`) |
|
||||
| 设置 | 每个子系统有自己的 settings schema(JSON Schema,存 `platform_settings` 表,key 前缀 `{name}.*`) |
|
||||
| 菜单 | 每个子系统在 `subsystems` 表注册,平台层根据 `category` 分组渲染左侧导航 |
|
||||
@@ -168,9 +166,10 @@ server/src/
|
||||
│ │ ├── settings.js # GET/PUT /api/platform/settings
|
||||
│ │ ├── subsystems.js # GET /api/platform/subsystems
|
||||
│ │ └── dashboard.js # GET /api/platform/dashboard (跨子系统聚合)
|
||||
│ ├── vehicles.js # CarLog
|
||||
│ ├── washes.js # CarLog
|
||||
│ └── ...
|
||||
│ └── subsystems/
|
||||
│ └── carlog/
|
||||
│ ├── index.js # 聚合导出 13 个 CarLog router
|
||||
│ └── routes/ # 13 个 CarLog 路由文件
|
||||
└── ...
|
||||
```
|
||||
|
||||
@@ -184,9 +183,13 @@ client/src/
|
||||
│ │ ├── GlobalSettings.vue
|
||||
│ │ ├── SubsystemSettings.vue # 通用渲染器
|
||||
│ │ └── Subsystems.vue # 启停 + 注册
|
||||
│ ├── Login.vue # i 平台统一登录
|
||||
│ ├── Home.vue # Dashboard, 读 /api/platform/dashboard
|
||||
│ ├── WashesList.vue
|
||||
│ └── ...
|
||||
│ └── subsystems/
|
||||
│ └── carlog/ # 20 个 CarLog view
|
||||
├── api/
|
||||
│ ├── client.js # 底层 axios 实例(auth interceptor + 解包)
|
||||
│ └── subsystems.js # carlogApi helper(baseURL = /api/carlog)
|
||||
├── router/index.js
|
||||
└── stores/
|
||||
├── auth.js
|
||||
@@ -257,13 +260,19 @@ export function tableName(name) {
|
||||
}
|
||||
```
|
||||
|
||||
### W3+: 加第二个子系统(健身)
|
||||
### W3+(暂不规划)
|
||||
|
||||
1. 写 `subsystems.fitness`:3-5 张表 + 3-5 个路由 + 5-10 个前端 view
|
||||
用户还没决定下一子系统做什么。本阶段只做:
|
||||
|
||||
1. ✅ 平台基座(subsystems 表 + platform_settings + 3 个平台路由 + 3 个平台前端 + 元数据驱动菜单)
|
||||
2. ✅ CarLog 子系统化(目录迁移 + 加 `/api/carlog/` 前缀 + 注册到 subsystems 表)
|
||||
|
||||
将来加新子系统时按这个流程:
|
||||
1. 写子系统的表(带 `{subsystem}_` 前缀)+ 路由 + 前端
|
||||
2. 注册到 `subsystems` 表
|
||||
3. 平台菜单自动出现 Fitness 入口
|
||||
4. 通用设置渲染器自动支持 Fitness 的 settings
|
||||
5. 验证:能从平台菜单点进 Fitness,操作后回平台
|
||||
3. 平台菜单自动出现新子系统入口
|
||||
4. 通用设置渲染器自动支持新子系统的 settings
|
||||
5. 验证端到端流程
|
||||
|
||||
## 8. 不做的事
|
||||
|
||||
|
||||
Reference in New Issue
Block a user