连接数据库并修改页面
This commit is contained in:
31
pages/mall/delivery/doc/order-history.md
Normal file
31
pages/mall/delivery/doc/order-history.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# order-history.uvue — 历史订单
|
||||
|
||||
## 概要
|
||||
显示配送员历史订单(已完成/已取消等),并支持按时间范围过滤、分页和插入刚完成订单以做到“即时显示”。
|
||||
|
||||
## 数据结构
|
||||
- `HistoryOrder`
|
||||
- `order_no`, `id`, `status`, `delivered_at`, `total_amount`, `shop_name`
|
||||
|
||||
## 关键方法
|
||||
- `loadOrderHistory({start,end,page,size})`
|
||||
- 优先按 `ml_delivery_tasks` 中与 `driver_id` 相关的 `order_id` 拉取任务记录,再批量查询 `ml_orders` 获取详情。
|
||||
- 若后端支持直接按 `driver_id` 返回已完成订单则调用后端聚合接口更高效。
|
||||
|
||||
- `checkForNewCompletedOrder()`
|
||||
- 从 `uni.getStorageSync('completed_order_for_history')` 读取并合并到 `orderHistory` 顶部,随后清除本地缓存键。
|
||||
|
||||
## DB 查询示例(伪 SQL / supa)
|
||||
```
|
||||
const tasks = await supa.from('ml_delivery_tasks').select('order_id,delivered_at').eq('driver_id', driverId).eq('status', 4).order('delivered_at', { ascending: false }).limit(100).execute()
|
||||
const orders = await supa.from('ml_orders').select('*').in('id', tasks.map(t=>t.order_id)).execute()
|
||||
```
|
||||
|
||||
## 分页与筛选
|
||||
- 使用后端分页(`page/size`),前端仅负责渲染和“加载更多”。
|
||||
- 支持按日期区间和商家名模糊搜索。
|
||||
|
||||
## 注意事项
|
||||
- 当从本地合并刚完成订单时,去重逻辑必不可少(按 `order_no` 或 `id`)。
|
||||
- 对于大量历史数据,应依赖后端支持归档与按需加载。错误/异常应有兜底 UI(空状态/重试按钮)。
|
||||
|
||||
Reference in New Issue
Block a user