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 |
ozh
|
01fefe373a
|
fix(ble): 放弃 services 过滤扫描改为直接全频段扫描,修复搜不到设备
微信 startBluetoothDevicesDiscovery 的 services 参数只按 128 位完整
UUID 匹配广播包;目标设备广播的是 16 位短 UUID(0x00F4 等),部分
机型/基础库版本下过滤扫描直接收不到这些设备的广播——表现为一直
搜不出设备,或要等 4s 兜底计时器切到全扫后才出现(感知为"慢")。
- startSearch 直接以无 services 参数启动扫描,事件通道
(onBluetoothDeviceFound) 与轮询通道 (getBluetoothDevices) 双路取数,
JS 层 matchTargetDevice(服务 UUID/名称关键词/广播包关键词三路匹配)
负责过滤,微信端只做采集
- 删除过滤扫描 4s 无结果回退机制(fallbackToUnfilteredDiscovery)及
相关定时器/常量/过滤 UUID 导出:不再有过滤阶段即无需回退
|
2026-09-09 19:00:54 +08:00 |
ozh
|
1fa4c5586d
|
docs(ble): 补记设备列表刷新节流修复
|
2026-09-09 18:39:39 +08:00 |
ozh
|
ac4cb3b0f9
|
fix(ble): 设备列表 UI 刷新加 300ms 节流,修复搜到设备后点击卡死
搜索开启 allowDuplicatesKey=true,目标设备广播包每秒到达数次且 RSSI
逐包变化——upsertDevice 的签名判重只拦"完全相同"的包,挡不住信号
强度变化。每包都会走 setDeviceMap → onDeviceListChange → React
setState → 页面重渲染,搜到设备后以每秒数十次的频率打满渲染线程,
点击事件被排队到数百毫秒后处理,表现为"搜到设备就无法停搜索"。
- setDeviceMap 改用 emitDeviceListThrottled:数据实时合入 deviceMap,
通知 UI 压到每 300ms 一次
- resetDeviceMap/stopSearch 绕过节流立即冲刷:清空与最终帧不能延迟
- cleanupDiscovery 补清节流定时器
|
2026-09-09 18:39:13 +08:00 |
ozh
|
2bc487c522
|
docs(ble): 补记 Taro 迁移后停搜索卡顿与配网按钮失效的修复记录
|
2026-09-09 18:27:30 +08:00 |
ozh
|
b0ba12034c
|
fix(ble): 停搜索先同步翻转状态再停原生扫描,消除等待回调的卡顿
- stopSearch:setSearching(false) 提到 stopBluetoothDevicesDiscovery 之前,
searchSessionId 已递增、事件已关闭,先翻转状态是安全的;
部分机型原生停扫回调慢,等它完成才更新 UI 会让按钮长时间停在
"搜索中"并串行阻塞连接等后续操作
- connectDevice:仅在搜索进行中才停搜索,避免每次连接都白白
调一次原生停扫接口
|
2026-09-09 18:22:15 +08:00 |
ozh
|
b8937d942f
|
feat(device-tab): 移除智能设备页悬浮加号,添加设备仅保留功能卡入口
|
2026-09-09 17:54:32 +08:00 |
ozh
|
58d0ee8ad7
|
fix(device): 修复配网页蓝牙搜索无法停止与网络配置按钮失效
与重构前 uni-app 版逐项对比定位三处回归:
- useDidHide 停搜索:旧版 onHide/onUnload 双触发,迁移版只有 useEffect
卸载清理,navigateTo 进入配网页或切后台时组件不卸载,扫描持续空转
- prepareWifiConfig 加 60s 超时兜底:createBLEConnection 在部分机型
失败后不回调,discoverServices/notify 无原生超时,loading 遮罩
永不撤除导致按钮永久禁用
- 连接失败后安全断开(对齐旧版 safeDisconnect):清掉 OS 层残留连接,
避免"已连接(10010)"卡死后续重试;并补回"设备已连接"成功提示
|
2026-09-09 17:43:22 +08:00 |
ozh
|
1baca70e35
|
feat(ui): 智能设备 TabBar 图标重制为 IoT 设备造型
原图标为实心方块,语义弱。重制为空心圆角矩形机身+中心圆环指示灯的 IoT 设备造型(4x 超采样抗锯齿,96px),与 home 图标尺寸统一;默认态 #666666、选中态品牌绿 #2CCB98。
|
2026-09-09 16:48:07 +08:00 |