Commit Graph

120 Commits

Author SHA1 Message Date
ozh 9f3ea3d82b feat(device): 设备卡片图标替换为型号产品图
- 新增 ED713/ED719/EB15 产品图资源,设备列表卡片图标按型号映射展示
  (subDeviceType 优先、deviceModel 兜底,EB15 为 EP832 网关子设备)
- 未匹配型号回落原字符图标并打印型号字段日志便于核对后端值
2026-09-21 15:58:44 +08:00
ozh a4b2e13a8e refactor(device): 解绑入口从列表卡片底部上移至详情页
- 设备列表移除卡片底部"解绑"通栏按钮与配套样式,
  解绑操作改为进入详情页底部 ListRow 触发,避免与卡片点击冲突
- 详情页新增 confirmUnbind/showModal 防误绑流程,成功后停轮询
  返回列表页;unbindHomeDevice 调用从列表页迁入详情页
2026-09-21 15:41:56 +08:00
ozh 213d61bbf6 feat(home): 当前家庭选择持久化,三页共享恢复逻辑统一
- 新增 store/currentHome.ts:storage 持久化 homeId,resolveCurrentHome
  优先恢复已存选择、失效回落第一条并重新落盘
- 设备列表/房间管理/添加设备三页统一走 resolveCurrentHome,
  切换家庭时同步 setCurrentHomeId
- 详情页隐藏 BLE 网络配置/设备配置入口(联调未完成),清理无用跳转函数
- 心率波形纵轴最小跨度 20 BPM,避免小波动被归一化放大成满幅曲线
2026-09-21 14:42:36 +08:00
ozh 05d46368d1 feat(device): 详情页接专用接口——单设备详情轮询 + 历史心率波形
- homeDevice.ts 新增 getHomeDeviceDetail(GET /ylHomeDevice/get/{installId},实测含 runTimeInfo)
  与 getVitalRecords(web 端同源 /iot/propertyRecord/getPropertyRecords,按 deviceName 查近一天倒序)
- 详情页轮询从「整列表再过滤」改为单设备详情接口,减小轮询载荷
- 恢复 VitalWave 心率波形 Canvas:历史 heartRate 序列按时间正序绘制贝塞尔平滑曲线 + 渐变填充
- 轮询生命周期 useDidShow 启停 / useDidHide 暂停,页面压栈后台不空跑
2026-09-18 17:36:58 +08:00
ozh d7bd20eb79 feat(device): 设备详情接入实时体征——EventChannel 传设备对象 + 3s 轮询刷新
- HomeDevice 补 runTimeInfo.properties 体征字段类型(2026-09-18 联调实测)
- 列表页跳详情改用 Taro.navigateTo 原生调用,EventChannel emit 整个 device 对象
- 详情页 getOpenerEventChannel 接收首屏零延迟渲染;setInterval 3s 轮询列表接口
  按 installId 定位刷新(对齐 web 端 VitalSignsDashboard SWR refreshInterval=3000)
- 体征六指标卡:呼吸率/体动/运动状态/在床状态/人体状态/人体位置,
  枚举文案复用 MOVE_STATE_MAP/BODY_STATUS_MAP/ONBED_STATUS_MAP
- 详情信息行新增安装房间
2026-09-18 17:24:48 +08:00
ozh ccca973d62 feat(build): 组件按需注入+分包+生产关 sourcemap,主包压至 0.42M
- app.config.ts 开启 lazyCodeLoading=requiredComponents
- 设备详情/添加/配置/BLE 迁移至 pages/device/feature 分包,家庭圈系列独立分包
- 路由常量同步分包路径;prod 构建关 devtool 剔除 .map
- 生产实测:主包 426K(目标 <1.5M 达成),family 分包 35K、device/feature 86K
- 附带:未登录业务码 202 接入踢登录(网关实测),房间/设备响应字段按联调实测修正
2026-09-18 17:07:26 +08:00
ozh 6377e53ecb feat(room): 房间管理入参类型化并支持使用场景选择(add/update 带 sence 枚举) 2026-09-17 14:44:26 +08:00
ozh cb2dc3d2aa feat(device): 设备列表/添加/解绑/房间管理接入真实接口,移除设备与场景 mock 层 2026-09-17 14:40:01 +08:00
ozh 5761a5fed2 feat(event): 首页/消息中心接入告警列表真实接口,移除事件 mock 层 2026-09-17 14:30:53 +08:00
ozh 7bef729e93 feat(family): 邀请体验优化——整行可点拉起分享、分享文案带邀请人、受邀直达自动加入
- 邀请行改为 open-type=share 的 Button 铺满整行,整行任意位置可点,视觉与普通行一致
- 分享标题带邀请人昵称:「XX 邀请你加入家庭圈「XX」」
- 接收方从分享卡进入:未登录先登录回跳,已登录且非成员时自动调 joinHome 完成加入,无需手动点击
2026-09-17 14:19:59 +08:00
ozh 0ef1f490e5 chore: 开发者工具关闭域名校验(urlCheck=false),放行内网网关联调 2026-09-17 14:09:11 +08:00
ozh a027c6ce2f feat(auth): 分享卡直达详情页未登录时先跳登录,登录后回跳原页面
- 家庭详情页 useDidShow 检测无 token 时 reLaunch 登录页并携带 redirect 参数
- 登录页登录成功/已有 token 时优先回跳 redirect 目标,无参数仍进首页
2026-09-17 14:05:36 +08:00
ozh 7f82b2f132 feat(family): 邀请他人改为微信转发分享(open-type=share + useShareAppMessage)
分享卡落到家庭详情页并携带 invite=1 标记,标题带家庭名
2026-09-17 13:59:13 +08:00
ozh 4b34910b4d chore(family): 关爱对象行未填联系人时不再显示占位文案 2026-09-17 11:58:25 +08:00
ozh a1901b5611 feat(family): 关爱对象详情页(查看/删除/编辑),列表行接入跳转
- 新建 pages/family/contact/detail:getCareMemberDetail 展示姓名/身份证脱敏/地址/紧急联系人,删除走确认弹窗 + deleteCareMember
- add 页支持编辑模式:memberId 参数预填原数据,save 带 memberId 走修改
- 家庭详情页关爱对象行加箭头跳转详情
2026-09-17 11:56:35 +08:00
ozh 2832053569 fix(family): 成员列表字段按联调实测修正(userNickName/role=OWNER 群主标识) 2026-09-17 11:40:42 +08:00
ozh f68bd299a7 feat(family): 详情页接入关爱对象列表与成员列表真实渲染
- 详情页新增「关爱对象」区:getCareMemberList 拉取并渲染姓名+联系人摘要,上限判定改以实际列表长度为准
- 成员区 HomeMember 主键按 transferOwner 入参修正为 memberId,显示名兼容 nickName/name 兜底
- 两个列表空态给出提示文案,不再渲染空白卡片
2026-09-17 11:38:28 +08:00
ozh 83a211ebd6 fix(family): 列表字段按联调实测修正(name/careMemberCount),修复卡片渲染空白 2026-09-17 11:16:49 +08:00
ozh e70aa7e3e6 feat(mine): 未登录时点头像区跳转登录页,副标题显示「点击登录」 2026-09-17 10:53:49 +08:00
ozh 5582fbb863 fix(http): 网关分服务前缀——登录接口走 /api/user,业务接口走 /api/biz 2026-09-17 10:51:55 +08:00
ozh 6889e9b4fa feat(family): 家庭圈列表/详情/关爱对象切换真实后端接口,移除 mock 数据层 2026-09-16 17:37:21 +08:00
ozh b1a9bef903 feat(mine): 个人中心改为展示登录返回的真实用户信息,移除 mock 数据源 2026-09-16 17:13:58 +08:00
ozh 86234d4f1f fix(login): 登录 token 从响应头 Token 提取落地(后端 Content.code 恒返 null) 2026-09-16 17:11:27 +08:00
ozh d3f9a6ae54 fix(http): 鉴权请求头改为自定义 token 头(后端联调约定,响应头 Token 同名下发) 2026-09-16 17:07:26 +08:00
ozh 87e4031fff fix(login): needUserInfo 授权改用 wx.getUserInfo(后端文档约定),暂缓手机号授权流程 2026-09-16 15:28:49 +08:00
ozh 026578dfbd fix(login): 手机号授权透传新版 code 令牌,兼容 iv/encryptedData 两种回传形态 2026-09-16 15:19:09 +08:00
ozh 10905df143 fix(login): noMobile 阶段后端将 openId 放 bindKey 字段返回,纳入兜底链 2026-09-16 15:15:48 +08:00
ozh 34a3887b2d fix(login): noMobile 响应缺 openId 时从本地缓存兜底,避免授权链路断开 2026-09-16 15:12:04 +08:00
ozh 96c2255c10 feat(login): 接续 noMobile 手机号授权注册步骤,登录链路全量调试日志 2026-09-16 10:59:38 +08:00
ozh 46c517ff42 fix(login): 适配首次登录 needUserInfo 二次授权流程,修复响应结构不符崩溃 2026-09-16 10:41:59 +08:00
ozh bd71d52c7f fix(auth): 守卫改到 navigation 统一出口,修复拦截器误改写请求 url 2026-09-15 17:26:47 +08:00
ozh 55c3ab8874 fix(http): 网络异常透传微信 errMsg,暴露真实失败原因(域名拦截/断网/超时) 2026-09-15 16:05:58 +08:00
ozh bb9f869a3e chore(dev): 关闭开发者工具域名校验,放行内网测试接口联调 2026-09-15 16:04:46 +08:00
ozh f9d0e3ba7f feat(auth): 开启路由级登录拦截,未登录访问受保护页重定向登录页 2026-09-15 16:04:40 +08:00
ozh 9581a991be feat(api): 家庭/房间/设备/告警接口骨架锁定路径 2026-09-15 13:56:07 +08:00
ozh f81d80f8ec fix(login): 登录成功跳转失败时恢复按钮可重试 2026-09-15 13:54:45 +08:00
ozh 90e6262c89 feat(login): 登录页改为微信一键登录并移除账密表单 2026-09-15 12:50:55 +08:00
ozh 44918644ef feat(login): 微信一键登录流程编排与单测 2026-09-15 12:43:28 +08:00
ozh 9871c11476 feat(auth): 微信小程序登录接口 wxMiniappLogin 替换 mock 2026-09-15 12:33:24 +08:00
ozh c65d179333 feat(store): authSlice 扩展 userInfo 并持久化 token 2026-09-15 11:57:54 +08:00
ozh 884a7b8343 fix(http): 401 踢登录防陈旧会话误清与跳转失败兜底 2026-09-15 11:47:18 +08:00
ozh 3adaaa65e2 feat(http): 登录态失效统一清登录态并踢回登录页 2026-09-15 11:34:18 +08:00
ozh 9fbe9266eb feat(http): 适配后端大写 envelope 与测试环境 BASE_URL 2026-09-15 11:18:26 +08:00
ozh fb66a9efe7 feat(http): 错误类型支持字符串业务码并新增 AuthExpiredError 2026-09-15 11:06:26 +08:00
ozh 51747499ed revert(ble): 回滚到迁移完成基线,隔离真机搜索问题成因
- 逐一尝试 09-09/09-10 的节流、全频段扫描、过滤恢复+排障日志及
  ble-config 超时兜底等改动后真机仍搜不到设备,整体 checkout 回
  8494285(Taro 迁移收尾提交)基线
- discovery.js 恢复过滤扫描优先+4s 兜底全扫原实现,移除 UI 刷新节流
  与排障日志,stopSearch 恢复先停原生再翻状态的原顺序
- ble-config.tsx 恢复初版:仅 useEffect 卸载清理,无超时兜底与
  失败补断开
- docs/unified-ble-flow.md 补记回滚决策与目的
2026-09-14 14:56:31 +08:00
ozh 3f52b493e0 feat(scene): 场所选择页支持添加房间,设备添加页扫码区重设计
- api/scene 新增 addScene(mock 走 storage 持久化,重名/空名校验),
  getSceneList mock 数据同样改为本地存储种子初始化
- 场所选择页改为"房间管理":底部虚线添加卡 + showModal editable 输入
  房间名,空列表时保留添加入口
- 设备添加页扫码区重绘:四角 L 形取景框 + 中间横线(纯 CSS),
  scanCode 限定 qrCode/barCode 并加真机排障日志
- 家庭圈卡片头部改双行(角色徽标贴名称、成员/设备数合并为副标题)
- mine 页补场所管理/手机号/版本行,登录方式替代 userId 展示,
  退出登录增加 toast
2026-09-11 14:43:10 +08:00
ozh 368fb3b12c fix(style): 家庭圈添加页通栏布局修正与 CSS Modules 构建配置
- config/index.ts miniCssExtractPlugin 开启 ignoreOrder,消除公共 chunk
  跨页面 import 顺序不一致的构建告警
- 家庭圈联系人添加页 .page 去掉四周 padding,hero Navbar 通栏接屏,
  左右留白改由内容卡/提交按钮自身 margin 提供
- reset.scss 移除多余 @import(variables 已由 sass.resource 前置注入)
2026-09-10 11:32:06 +08:00
ozh f0dbe5b1c5 docs(ble): 补记恢复过滤扫描优先与排障日志的决策 2026-09-10 11:12:18 +08:00
ozh 2238e965b9 fix(ble): 恢复过滤扫描优先+4s兜底全扫,并加搜索排障日志
真机验证"直接全频段扫描"方案后设备反而搜不出(修改前过滤扫描可搜到),
说明该机型下无过滤扫描路径存在问题(可能为机型对无 services 参数的
startBluetoothDevicesDiscovery 兼容差异)。回退为迁移原版策略:

- 恢复 DISCOVERY_FILTER_SERVICE_UUIDS 常量与 fallbackToUnfilteredDiscoveryIfNeeded
  兜底机制:先按 0xFFF4/0x00F4/0xF400 过滤扫描,4s 无结果自动切全扫
- upsertDevice 改为返回布尔值,event/poll 两条通道均打印排障日志
  ([BLE][SCAN] 原生采集数与命中数、[BLE][FOUND] 事件命中数、
  启动/兜底切换日志),真机 vConsole 可直接观察各阶段状态
2026-09-10 11:11:30 +08:00
ozh 5e5cd2bf47 docs(ble): 补记放弃过滤扫描改全频段扫描的决策 2026-09-09 19:02:45 +08:00