Files
xinlong-shop-taro/.workbuddy/memory/2025-07-17.md
赵忠林 098fc01623 feat(store-orders): 增强订单页支持搜索及重构Tab
- 将订单列表底部时间显示格式由只含日期改为显示至分钟的完整时间
- 门店订单页新增搜索功能,支持订单号、手机号、昵称等多字段模糊匹配
- 实现单个搜索框叠加于当前Tab内,切Tab及搜索提交自动刷新订单列表
- 调整ScrollView高度以适配搜索栏新增布局
- 优化订单Tab结构,由“全部/已完成/已关闭”改为“待处理/已完成/已关闭”
- 待处理Tab合并待付款、待发货、待核销、待收货多状态订单
- 去除原“全部”Tab,默认激活改为“待处理”Tab
- 新订单角标由“全部”Tab迁移到“待处理”Tab显示
- 搜索无结果时显示“未找到与‘xxx’相关的订单”提示
- 确保后端筛选与前端Tab状态映射一致,提升用户体验
2026-07-17 02:00:24 +08:00

35 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2025-07-17 工作日志
## 门店订单管理页修复pages/store/orders/index.tsx
三个问题修复:
1. **确认完成按钮过早显示**`getOrderActions` 中"确认完成"原来对所有可操作订单都显示,改为仅在 `order.payStatus === true`(已确认收款)后才显示,避免占用位置。
2. **确认收款后仍可修改金额**`getOrderActions` 中"修改金额"原来对所有可操作订单都显示,改为仅在 `!order.payStatus`(未付款)时显示。确认收款后修改金额按钮自动隐藏。
3. **已关闭 Tab 混入待发货订单**`TABS` 配置中 `pending`(已关闭)的 params 原来同时包含 `statusFilter: 1`(待发货)和 `statusFilter: 8`(已关闭),导致待发货订单也出现。已改为只查 `statusFilter: 8`
### 操作按钮逻辑总结(修复后)
- **修改金额**:仅未付款(`!payStatus`)时显示
- **确认收款**仅线下付款payType=9且未付款时显示
- **确认完成**:仅已付款(`payStatus === true`)时显示
- **关闭订单**:所有可操作订单(非已完成、非已关闭)均显示
## 订单列表下单时间显示到时分components/common/OrderCard
`pages/order/list` 列表卡片(`OrderCard`)底部日期原为 `order.createTime?.slice(0, 10)`(仅显示 YYYY-MM-DD
改为 `order.createTime?.replace('T', ' ').slice(0, 16)`,显示「下单时间: YYYY-MM-DD HH:mm」`replace('T',' ')` 兼容后端 ISOT 分隔)与空格分隔两种时间格式。
## 门店订单页增加搜索功能pages/store/orders/index.tsx
方案(已与用户确认):单个搜索框 + 在当前 Tab 内叠加筛选,无需改后端、无需改类型定义。
实现要点:
- 新增 `searchInput`(受控输入)、`searchKeyword`(已提交搜索词)两个 state。
- `loadOrders` 每个 `pageShopOrder` 请求附带 `keywords: searchKeyword || undefined`(后端 `keywords` 已支持订单号/订单ID/手机号/昵称/备注组合模糊搜索);`useCallback` 依赖加 `searchKeyword`,切 Tab/提交搜索自动重加载。
- 触发:点「搜索」按钮 / 键盘回车(`onConfirm` + `confirmType='search'`/ 点「×」清空。
- 搜索无结果显示「未找到与"xxx"相关的订单」,否则「暂无订单」。
- ScrollView 高度由 `calc(100vh - 50px)` 改为 `calc(100vh - 100px)`(为新增搜索栏留位)。
- 注意后端「全部」Tab 默认隐藏已关闭单(`statusFilter != 8``order_status != 2`搜已关闭单需切到「已关闭」Tab。手机号在 keywords 里是精确匹配(`b.phone =`),订单号支持部分匹配。