feat(store): 新增门店新订单提醒功能

- 新增 useNewOrderDetector Hook,实现30秒轮询检测新订单
- 订单管理页集成该 Hook,新增订单时震动+Toast提醒
- “全部”Tab 显示新订单红点,切换Tab清空未读计数
- 门店中心页增加待处理订单角标,统一待审核和待处理显示逻辑
- 底部新增“接收新订单提醒”订阅消息授权入口,调用微信接口申请授权
- 文档中补充订阅消息模板ID及字段说明,待后端配合公众号推送消息
This commit is contained in:
2026-07-04 12:10:02 +08:00
parent 994695c405
commit 5c8acfd19c
6 changed files with 286 additions and 14 deletions

View File

@@ -74,3 +74,44 @@
### 涉及文件(补充)
- 修改:`src/pages/shop/product-detail.tsx`
---
### 10. 新订单提醒功能(前端轮询 + 订阅消息)
#### 10.1 创建 useNewOrderDetector Hook
- 新建 `src/hooks/useNewOrderDetector.ts`
- 封装新订单轮询检测逻辑:
- 首次加载自动建立订单 ID 基准线,不触发提醒
- 后续轮询对比发现新订单后触发 `onNewOrders` 回调
- 页面隐藏时自动暂停轮询,显示时恢复
- 提供 `clearUnread()` 方法清除未读计数
- 导出类型:`NewOrderItem``UseNewOrderDetectorOptions``UseNewOrderDetectorReturn`
- 注册到 `src/hooks/index.ts`
#### 10.2 改造订单管理页(前端轮询)
- 修改 `src/pages/store/orders/index.tsx`
- 集成 `useNewOrderDetector`30 秒轮询,静默检测新订单
- 发现新订单时:震动提醒(`Taro.vibrateShort`+ Toast 提示("您有 N 条新订单"
- "全部" Tab 增加红色角标显示未读新订单数(>99 显示 99+
- 切换 Tab 时自动清除未读计数
#### 10.3 改造门店中心页
- 修改 `src/pages/store/center/index.tsx`
- 订单管理卡片增加待处理订单角标(查询 statusFilter=1 的 total
- VIP 审核角标同步增强,统一使用 `getBadgeCount()` 方法
- 底部新增"接收新订单提醒"卡片:
- 调用 `Taro.requestSubscribeMessage` 请求微信订阅消息授权
- 模板 ID 通过 `SUBSCRIBE_TMPL_IDS` 常量配置(待微信公众平台申请后填入)
- 授权成功后 Toast 提示
#### 待后端配合
- 微信公众平台申请订阅消息模板("新订单通知"类目)
- 将模板 ID 填入 `store/center/index.tsx``SUBSCRIBE_TMPL_IDS` 数组
- 后端在订单创建成功后调用 `subscribeMessage.send` API 向店员推送
#### 涉及文件
- 新建:`src/hooks/useNewOrderDetector.ts`
- 修改:`src/hooks/index.ts`
- 修改:`src/pages/store/orders/index.tsx`
- 修改:`src/pages/store/center/index.tsx`

View File

@@ -25,3 +25,9 @@
- VIP 审核页:`src/pages/user/vip-review/index.tsx`
- VIP 升级页:`src/pages/user/vip-upgrade/index.tsx`
- 门店中心:`src/pages/store/center/index.tsx`
## 订阅消息
- 模板 ID`sh1K9iK7vZjebUNFu6OsMsnsJxm4whThWGrhN7I4zVg`(交易提醒)
- 字段:订单号(`character_string1`)、商品名称(`thing4`)、联系人(`thing10`)、联系电话(`phone_number7`)、送货地址(`thing8`)
- 场景说明:下单提醒
- 新订单检测 Hook`src/hooks/useNewOrderDetector.ts`30秒轮询页面隐藏暂停