docs: 更新 wiki + CLAUDE.md — 三端架构和管理端集成
- wiki/index.md: 更新关键数字、三端架构图、启动命令、症状导航 - wiki/architecture.md: 补充三端架构、来源追溯、活跃问题更新 - wiki/admin-web.md: 新建管理端文档 — 结构/API代理/功能映射/品牌定制清单 - CLAUDE.md: 补充 apps/web 目录、管理端场景化指令、三端启动命令
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 暖记知识库首页
|
||||
updated: 2026-06-01
|
||||
updated: 2026-06-02
|
||||
status: active
|
||||
---
|
||||
|
||||
@@ -10,39 +10,41 @@ status: active
|
||||
|
||||
## 关键数字
|
||||
|
||||
> 最后更新: 2026-06-01 | 基线: main (c2a9579)
|
||||
> 最后更新: 2026-06-02 | 基线: main (8111471)
|
||||
|
||||
| 指标 | 值 |
|
||||
|------|-----|
|
||||
| Rust crate | 8 个(6 基座 + 1 入口 + erp-diary) |
|
||||
| Rust 总代码 | ~51,459 行(256 个 .rs 文件) |
|
||||
| Rust 总代码 | ~51,500 行 |
|
||||
| erp-diary 新增 | 5,108 行(41 个文件) |
|
||||
| Dart 文件 | 70 个(~18,398 行,含生成代码 6,128 行) |
|
||||
| Dart 文件 | 74 个(~19,500 行) |
|
||||
| 管理端前端 (React) | ~317 个 TypeScript 文件 |
|
||||
| SeaORM Entity | 15 个(erp-diary) + 50+(基座) |
|
||||
| 数据库迁移 | 56 个(41 基座 + 15 diary) |
|
||||
| BLoC 模块 | 12 个(5 flutter_bloc + 5 ChangeNotifier + 2 混合) |
|
||||
| Flutter features | 16 个 |
|
||||
| Isar Collection | 3 个(JournalEntry / JournalElement / PendingOperation) |
|
||||
| 后端测试 | ~50 个通过 |
|
||||
| 前端测试 | **0 个**(最大技术债) |
|
||||
| flutter analyze | 0 error / 1 warning / 18 info |
|
||||
| Git 提交 | 20 次 |
|
||||
| 技术债 | 10 已记录 + 9 新发现 |
|
||||
| 数据库迁移 | 58 个(42 基座 + 15 diary + 1 role seed) |
|
||||
| 后端测试 | 77 个通过 ✅ |
|
||||
| 前端 BLoC 测试 | 84 个通过 ✅ |
|
||||
| flutter analyze | 0 error ✅ |
|
||||
| Git 提交 | 22 次 |
|
||||
|
||||
## 代码量分布
|
||||
## 三端架构
|
||||
|
||||
| 组件 | 代码行数 | 文件数 | 占比 |
|
||||
|------|---------|--------|------|
|
||||
| erp-plugin (WASM 插件运行时) | 11,312 | 28 | 16.2% |
|
||||
| erp-auth (认证/权限) | 7,458 | 39 | 10.6% |
|
||||
| erp-workflow (BPMN 引擎) | 5,410 | 27 | 7.7% |
|
||||
| erp-config (字典/菜单/设置) | 5,111 | 23 | 7.3% |
|
||||
| erp-diary (暖记业务) | 5,108 | 41 | 7.3% |
|
||||
| erp-server (入口/迁移) | ~10,414 | 72 | 14.9% |
|
||||
| erp-core (事件/加密/审计) | 2,774 | 27 | 4.0% |
|
||||
| erp-message (通知/SSE) | 3,872 | 19 | 5.5% |
|
||||
| Flutter 前端 | ~18,398 | 70 | 26.3% |
|
||||
| **合计** | **~69,857** | **~346** | **100%** |
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 暖记系统 │
|
||||
├──────────┬──────────────────┬───────────────────────┤
|
||||
│ 后端 API │ 管理端 Web │ 学生端 App │
|
||||
│ Rust/Axum │ React/Ant Design │ Flutter │
|
||||
│ :3000 │ :5174 │ :8080 │
|
||||
│ │ │ │
|
||||
│ erp-diary │ 用户管理 │ 手写日记 │
|
||||
│ erp-auth │ 角色权限 │ 日历/心情 │
|
||||
│ erp-core │ 审计日志 │ 班级/分享 │
|
||||
│ erp-config│ 系统配置 │ 贴纸/模板 │
|
||||
│ ... │ 插件管理 │ 成就/设置 │
|
||||
├──────────┴──────────────────┴───────────────────────┤
|
||||
│ PostgreSQL 16 + Redis 7 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 系统数据流
|
||||
|
||||
@@ -71,14 +73,27 @@ JournalEntry RemoteJournalRepository
|
||||
Axum → erp-diary → PostgreSQL
|
||||
```
|
||||
|
||||
## 一键启动
|
||||
|
||||
```bash
|
||||
./scripts/dev.sh # 启动全部 (后端 + 管理端 + 学生端)
|
||||
./scripts/dev.sh backend # 只启动后端 API
|
||||
./scripts/dev.sh admin # 只启动管理端 (React, :5174)
|
||||
./scripts/dev.sh app # 只启动学生端 (Flutter, :8080)
|
||||
./scripts/dev.sh stop # 停止所有服务
|
||||
```
|
||||
|
||||
管理端默认账号: `admin / admin123`
|
||||
|
||||
## 模块导航
|
||||
|
||||
- [[architecture]] — 仓库拓扑、基座继承、Feature Flag、多租户、安全合规
|
||||
- [[architecture]] — 仓库拓扑、基座继承、Feature Flag、多租户、安全合规、三端架构
|
||||
- [[admin-web]] — 🆕 管理端 React 前端、Ant Design、从 HMS 基座复用
|
||||
- [[handwriting-engine]] — 双层 Canvas、光栅化缓存、perfect_freehand、4 种画笔
|
||||
- [[data-layer]] — Isar 本地存储、Repository 模式、SyncEngine 离线同步
|
||||
- [[frontend]] — Flutter BLoC、16 个功能模块、设计系统、响应式布局
|
||||
- [[erp-diary]] — Rust 后端业务模块、Entity/Service/Handler、API 端点、权限码
|
||||
- [[project-health]] — 🆕 项目健康度评估、技术债全景、风险矩阵、改进建议
|
||||
- [[project-health]] — 项目健康度评估、技术债全景、风险矩阵、改进建议
|
||||
|
||||
## 症状导航
|
||||
|
||||
@@ -86,19 +101,14 @@ JournalEntry RemoteJournalRepository
|
||||
|------|------|------|----------|
|
||||
| 笔画卡顿 >16ms | [[handwriting-engine]] | 光栅化缓存 | shouldRepaint 守卫失效 / 未用 Listener |
|
||||
| 编辑器保存失败 | [[data-layer]] | IsarDatabase | Isar 未初始化 |
|
||||
| Isar `findAll` 未定义 | [[data-layer]] | 扩展方法 | 缺少 `import 'package:isar/isar.dart'` |
|
||||
| 同步版本冲突 | [[data-layer]] | 乐观锁 | version 不匹配 |
|
||||
| 深色模式颜色异常 | [[frontend]] | AppTheme | token 未适配深色值 |
|
||||
| API 返回 403 | [[erp-diary]] | 权限守卫 | 权限码不匹配 |
|
||||
| 迁移执行失败 | [[architecture]] | 多租户 | 表冲突 / 缺失迁移 |
|
||||
| 上下文窗口耗尽 | CLAUDE.md §8 | 会话交接 | 长会话未及时交接 |
|
||||
| 手写穿透背景 | [[handwriting-engine]] | 橡皮擦 | 未用 saveLayer + dstOut |
|
||||
| 模式切换卡顿 | [[handwriting-engine]] | IgnorePointer | if/else 销毁重建 Widget |
|
||||
| 热重载后 Isar 崩溃 | [[data-layer]] | 初始化 | 未 close 就 re-open |
|
||||
| 编辑器加载空白 | [[frontend]] | EditorBloc | journalId 有值但未加载 Isar 数据 |
|
||||
| SyncEngine 队列丢失 | [[data-layer]] | 持久化 | 退出时未调 persistPendingQueue |
|
||||
| SSE 推送不工作 | [[frontend]] | 端口配置 | SSE 端口 8080 vs API 端口 3000 |
|
||||
| 班级码验证失败 | [[frontend]] | auth_bloc | 班级码后端验证 TODO 未实现 |
|
||||
| 管理端登录白屏 | [[admin-web]] | Vite proxy | 后端未启动或端口不对 |
|
||||
| CORS 跨域错误 | [[architecture]] | config/default.toml | allowed_origins 未包含前端端口 |
|
||||
| 端口占用启动失败 | `scripts/dev.sh stop` | netstat | 旧进程未清理 |
|
||||
| 班级码验证失败 | [[frontend]] | auth_bloc | 班级码后端验证 TODO |
|
||||
| Profile 页白屏 | [[frontend]] | UserRoleType | .name 应改为 .code |
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -110,3 +120,4 @@ JournalEntry RemoteJournalRepository
|
||||
| 技术债看板 | `docs/tech-debt-board.md` |
|
||||
| OpenDesign 原型 | `docs/opendesign/warm-notes-journal-app.md` |
|
||||
| 基座仓库 | https://git.stableeasy.com/iven/base.git |
|
||||
| HMS 源码 (只读) | G:\hms |
|
||||
|
||||
Reference in New Issue
Block a user