docs(wiki): 校准关键数字至 2026-06-04 — 自动测量+登录修复+知识库V2
关键数字变更: - Rust 源文件: 705→726 (+21), 代码行 ~134K - 迁移: 165→175 (+10, 知识库 V2 + RLS) - erp-health: 58→59 Entity, 31→33 handler, 216→217 文件 - erp-ai: 20→24 Entity, 95→105 文件 (知识库 V2) - 全系统 Entity: 115→118 - utoipa: 94→98 文件 - 后端测试: 1030→1031 函数 - Git 提交: 1061→1065 - 小程序: 185→202 TS/TSX, 49→51 service, 5→6 store, 12→13 hooks, 103→110 SCSS 症状导航新增: - M2 测量页仪表盘数值不可见 (gauge__center 缺背景色) - 微信登录后显示绑定失败-登录态丢失 (login() 吞错误)
This commit is contained in:
@@ -4,30 +4,30 @@
|
||||
|
||||
## 关键数字
|
||||
|
||||
> 最后更新: 2026-05-31 | 数据截止: feat/media-library-banner 分支(Veepoo M2 BLE 管线扩展:精准睡眠 + 自动测量 + UI 重构)
|
||||
> 最后更新: 2026-06-04 | 数据截止: feat/media-library-banner 分支(自动测量队列 + 登录错误处理 + AI 知识库 V2)
|
||||
|
||||
| 指标 | 值 |
|
||||
|------|-----|
|
||||
| Rust crate | 17 个(erp-core + 5 基础业务 + erp-health + erp-ai + erp-dialysis + erp-plugin + 7 插件/原型) |
|
||||
| Rust 源文件 | **705 个**(~130,000 行) |
|
||||
| 数据库表 | 30 基础表 + 49 健康业务表 + 13 AI 表(+4 会话/消息/tool_log/user_profile) + 3 媒体库/轮播图表 |
|
||||
| 数据库迁移 | **165 个**(最新 m20260522_000162) |
|
||||
| Rust 源文件 | **726 个**(~134,000 行) |
|
||||
| 数据库表 | 30 基础表 + 49 健康业务表 + 15 AI 表(+4 会话/消息/tool_log/user_profile + 2 知识库 V2) + 3 媒体库/轮播图表 |
|
||||
| 数据库迁移 | **175 个**(最新 m20260529_000169) |
|
||||
| 后端路由 | **385+ 个**(11 公开 + 14 FHIR + 2 网关 + ~358 受保护) |
|
||||
| 核心模块 | 5 基础 (auth/config/workflow/message/plugin) + 3 业务 (health + ai + dialysis) |
|
||||
| erp-health 实体 | **58 个** Entity(31 handler / 57 service / 22 DTO,216 文件) |
|
||||
| erp-ai 实体 | 20 个 Entity(95 文件,4 AI Provider,chat_handler 支持 FC/Ollama fallback) |
|
||||
| 全系统 Entity | **115 个**(58 health + 20 ai + 33 基础 + 4 core) |
|
||||
| erp-health 实体 | **59 个** Entity(33 handler / 57 service / 22 DTO,217 文件) |
|
||||
| erp-ai 实体 | **24 个** Entity(**105 文件**,4 AI Provider,chat_handler 支持 FC/Ollama fallback,知识库 V2) |
|
||||
| 全系统 Entity | **118 个**(59 health + 24 ai + 31 基础 + 4 core) |
|
||||
| Web 前端 | 316 个 TS/TSX 文件(54 活跃路由,83 API 模块,108 页面) |
|
||||
| 微信小程序 | Taro 4.2 + React 18,185 个 TS/TSX 文件 / 62 页面(15 主包 + 47 分包) / 4 TabBar + 医生端独立分包,34 组件(ui 21 + patterns 4 + 独立 9) / 49 service 文件 / 5 Zustand store / 12 hooks,统一组件库 + CSS 变量主题(103 SCSS 全量接入 `var(--tk-*)`,字号 token 对齐原型统计,医生端 `.doctor-mode` 靛蓝覆盖,登录页账号密码+微信一键登录);**Phase 2+3 完成**:Token 构建时生成 + Canvas 适老 + PII 清理 + 缓存加密 + any 清零 + 大文件拆分(3→6) + 触觉反馈 + 导航状态保持 + 独立分包 + CI 集成 + HMAC 请求签名;**并发安全**:长轮询独立通道 `requestUnlimited` + ConcurrencyLimiter(12) + safeNavigateTo 全局页栈保护 + reLaunch 去重;**Veepoo M2 BLE 管线**:独立管线(VeepooBridge 24 API(含精准睡眠/自动测量/开关设置/体温自动数据)+ VeepooPipeline 事件路由(type=1/4/5/6/18/31/51/54/58)+ VeepooHistoryReader 日常+睡眠上传 + VeepooStore 状态管理(含 sleepData/sleepLoading))+ **原生分包页面**(`pkg-veepoo` 原生 JS+WXML,脱离 Taro 直接调用 SDK,绕过框架兼容性限制)+ 实时测量页面(心率/血氧/血压/体温/压力 5 指标,圆环仪表盘 + 长者模式适配)+ 3 天历史数据同步(VeepooHistoryReader 分批上传 + 断点续传)+ **精准睡眠数据自动读取**(认证后自动读取 3 天睡眠:深睡/浅睡/总时长/质量评分,通过 Storage 回传 Taro 页面)+ **自动测量功能**(认证后自动开启心率/血压/体温自动监测);**UI 重构**:测量页药丸式选择器 + SVG 圆环仪表盘 + 健康评估标签;数据上传页 2 列结果卡片网格 + 彩色条标识 + 睡眠数据卡片(★ 评分 + 总时长);**preloadRule 已移除 pkg-health** 防止 380KB SDK 预加载导致首页 DevTools 卡死;**构建优化**:`lazyCodeLoading: requiredComponents` 仅生产构建启用(dev 下已知 DevTools 卡死 bug),`addChunkPages` 仅 TabBar 页注入 common chunk,主包 dev 892KB / prod 766KB;**五维度分析评分 6.7/10**(架构7.25/安全6.0/UX7.4/工程6.2) |
|
||||
| 微信小程序 | Taro 4.2 + React 18,**202 个 TS/TSX 文件** / 62 页面(15 主包 + 47 分包) + 1 原生分包页(pkg-veepoo) / 4 TabBar + 医生端独立分包,34 组件(ui 21 + patterns 4 + 独立 9) / **51 service 文件** / **6 Zustand store** / **13 hooks**,统一组件库 + CSS 变量主题(**110 SCSS** 全量接入 `var(--tk-*)`,字号 token 对齐原型统计,医生端 `.doctor-mode` 靛蓝覆盖,登录页账号密码+微信一键登录);**Phase 2+3 完成**:Token 构建时生成 + Canvas 适老 + PII 清理 + 缓存加密 + any 清零 + 大文件拆分(3→6) + 触觉反馈 + 导航状态保持 + 独立分包 + CI 集成 + HMAC 请求签名;**并发安全**:长轮询独立通道 `requestUnlimited` + ConcurrencyLimiter(12) + safeNavigateTo 全局页栈保护 + reLaunch 去重;**Veepoo M2 BLE 管线**:独立管线(VeepooBridge 24 API(含精准睡眠/自动测量/开关设置/体温自动数据)+ VeepooPipeline 事件路由(type=1/4/5/6/18/31/51/54/58)+ VeepooHistoryReader 日常+睡眠上传 + VeepooStore 状态管理(含 sleepData/sleepLoading))+ **原生分包页面**(`pkg-veepoo` 原生 JS+WXML,脱离 Taro 直接调用 SDK,绕过框架兼容性限制)+ **自动测量队列**(连接认证后自动依次测量心率→血氧→血压→体温→压力 5 项指标,列表式进度 UI,面向中老年人零操作设计)+ 3 天历史数据同步(VeepooHistoryReader 分批上传 + 断点续传)+ **精准睡眠数据自动读取**(认证后自动读取 3 天睡眠:深睡/浅睡/总时长/质量评分,通过 Storage 回传 Taro 页面)+ **自动测量功能**(认证后自动开启心率/血压/体温自动监测);**UI 重构**:测量页药丸式选择器 + SVG 圆环仪表盘 + 健康评估标签;数据上传页 2 列结果卡片网格 + 彩色条标识 + 睡眠数据卡片(★ 评分 + 总时长);**preloadRule 已移除 pkg-health** 防止 380KB SDK 预加载导致首页 DevTools 卡死;**构建优化**:`lazyCodeLoading: requiredComponents` 仅生产构建启用(dev 下已知 DevTools 卡死 bug),`addChunkPages` 仅 TabBar 页注入 common chunk,主包 dev 892KB / prod 766KB;**五维度分析评分 6.7/10**(架构7.25/安全6.0/UX7.4/工程6.2) |
|
||||
| 前端测试 | Web 62 单元测试文件(~693 断言) + 17 E2E spec(13 Web + 4 MP,~64 断言);小程序 12 单元测试文件(127 断言) + 4 E2E spec(~16 断言),覆盖率 ~6% |
|
||||
| 后端测试 | **1030 个函数**(839 同步 + 191 异步),96 个文件含测试 |
|
||||
| 后端测试 | **1031 个函数**(839 同步 + 192 异步),97 个文件含测试 |
|
||||
| 事件系统 | 31 事件类型(health)/ 51 全系统 / 82 发布点 / 15 消费者模块 / Outbox + LISTEN/NOTIFY |
|
||||
| 权限码 | **141 个**(health 57 + ai 21 + auth 24 + config 18 + workflow 8 + message 5 + plugin 2 + dialysis 5 + system 1) |
|
||||
| utoipa 注解 | **94 个**文件含注解 |
|
||||
| utoipa 注解 | **98 个**文件含注解 |
|
||||
| Clippy | **全 workspace 0 警告**(2026-05-07 清零) |
|
||||
| 依赖版本 | 全部最新主版本线(Rust edition 2024) |
|
||||
| API 文档 | `http://localhost:3000/api/docs/openapi.json` |
|
||||
| Git 提交 | **1,061 次** |
|
||||
| Git 提交 | **1,065 次** |
|
||||
| Graphify 知识图谱 | **18,517 节点** / 22,666 边 / 1,841 社区(`graphify-out/`,AST 解析,无 API 成本) |
|
||||
| 系统分析评分 | **6.9/10 (B)**(多专家组生产就绪度分析,2026-05-21:业务 8.5 / 医疗合规 6.5 / 前端 8.0 / 安全 7.5 / DevOps 4.0) |
|
||||
| 审计状态 | V1: 83% → V2: 85%,P0 安全修复已完成;E2E 测试 157 端点(Health 63% / AI+Plugin 92.4%),CRITICAL×2 待修复 |
|
||||
@@ -154,6 +154,8 @@
|
||||
| M2 设备扫描不到(名称匹配过严) | [[miniprogram]] 原生页面扫描 | 过滤条件 `name.indexOf('M2')` 过严,设备可能广播为 VPM/VEEPOO | **已修复:** 放宽匹配 M2/VPM/VEEPOO 三种前缀(2026-05-30) |
|
||||
| M2 设备认证超时(3 层根因) | [[miniprogram]] 原生页面认证 | **根因链**:①连接回调 `errno:0` 在第 1 次回调就匹配,认证在特征值订阅前发送 → 修复为只匹配 `connection:true`;②`veepooWeiXinSDKNotifyMonitorValueChange` 在 `onLoad` 注册时内部调用 `wx.notifyBLECharacteristicValueChange`,适配器未初始化 → `not init` 错误,改到 `connection:true` 后注册;③认证结果字段检查错误:代码检查 `VPDevicepassword`(值="0000")而非 `VPDeviceAck`(值="successfulVerification") | **已修复:** 三层修复 — connection:true 唯一匹配 + 监听器时序 + VPDeviceAck 字段(2026-05-30) |
|
||||
| Veepoo 上传按钮无响应(无日志无报错) | [[miniprogram]] veepoo-measure | `handleUpload` 中 `if (!patient) return;` 静默退出,`currentPatient` 从 auth store 恢复可能为 null(原生页返回后) | **已修复:** patientId 增加 URL 参数 fallback + 每个 early return 添加 console.warn + Taro.showToast 用户提示 + 上传按钮 disabled/loading 状态(2026-05-31) |
|
||||
| M2 测量页仪表盘数值不可见 | [[miniprogram]] 原生测量页 WXSS | `.gauge__center` 无背景色,`conic-gradient` 填满整个圆形区域,数值文字对比度极低 | **已修复:** `.gauge__center` 添加 `background: var(--bg)` + `border-radius: 50%`(2026-06-04) |
|
||||
| 微信登录后显示"绑定失败 — 登录态丢失" | [[miniprogram]] auth store | `login()` catch 块把 API 错误吞掉返回 false,调用方误判为"未绑定"显示绑定按钮;`bindPhone()` 读不到 `wechat_openid` | **已修复:** API 失败时 throw 而非 return false + 增加 `resp.openid` 空值校验(2026-06-04) |
|
||||
|
||||
## 模块导航
|
||||
|
||||
|
||||
Reference in New Issue
Block a user