Files
xinlong-shop-taro/.workbuddy/memory/2026-07-01.md
赵忠林 7a78c14d85 fix(order): 优化订单状态判断与收货流程
- 移除货到付款场景下的"确认收款"按钮,统一使用"确认完成"操作设置 payStatus=true
- 确认完成时新增设置 deliveryStatus=30(已收货)和 deliveryTime,保持与后台确认收货逻辑一致
- sendEndImg 字段改为 JSON 数组格式,兼容多图保存,避免 OSS URL 中逗号解析错误
- 修复 OrderCard.getCardStatus 判断顺序错误,确保 orderStatus=1(已完成)优先判定,区分已收货和待收货状态显示颜色与文案
2026-07-01 17:28:01 +08:00

72 lines
4.8 KiB
Markdown
Raw Permalink 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.

- 修改 `src/pages/user/about/index.tsx`:根据截图将“广西金炜建设工程有限公司”的简介更新为“玉林市玉州区鑫龙家电经营部”相关内容,包括头部品牌、公司简介、核心业务、联系信息及版权。
## 门店中心功能实现
- 修改 `src/pages/user/user.tsx`:在“我的钱包”上方添加“门店中心”按钮,仅当 `user.isAdmin === true` 时显示。
- 新建门店中心页面 `src/pages/store/center/index.tsx`
- 订单列表按状态筛选(待付款/待发货/待收货/已完成)
- 支持操作:标记已付款、标记已发货、标记已完成
- 操作时需要上传凭证图片拍照或相册选择最多3张
- 凭证图片上传到 `https://shop-api.websoft.top/api/oss/upload`
- 操作成功后刷新订单列表
- 修改 `src/app.config.ts`:注册新页面 `pages/store/center/index`
- 订单状态字段说明(`ShopOrder`
- `payStatus: boolean``false`=未付款,`true`=已付款
- `deliveryStatus: number``10`=未发货,`20`=已发货,`30`=发货已完成
- `orderStatus: number``0`=正常,`1`=已完成,`2`=已取消
- `sendEndImg: string` — 配送员送达拍照逗号分隔的多图URL
## 门店中心功能重构
- 取消注释 `src/pages/user/user.tsx` 第56-57行门店中心菜单项`user.isAdmin` 条件显示),位于"我的钱包"上方
- 重写门店中心页面 `src/pages/store/center/index.tsx`
- 修复 API 分页参数:使用 `page`/`limit` 替代 `pageNo`/`pageSize`,响应格式使用 `list`/`count`
- 新增"确认送达"操作(`opType='complete'`):配送货物到达后拍照上传,同时变更 payStatus=true + deliveryStatus=30 + orderStatus=1 + sendEndImg
- 已完成订单显示送达凭证照片(`sendEndImg`
- 使用 `useDidShow` 生命周期刷新列表
- 使用 `loadingRef` 防止并发加载
- 修改门店中心显示条件:从 `user.isAdmin` 改为 `storeInfo`(通过 `/api/shop/shop-store-user/my` 接口判断当前用户是否为门店店员/店长)
## 门店中心页面简化(货到付款模式)
- 重写 `src/pages/store/center/index.tsx`
- Tab 从4个简化为2个**待处理**statusFilter=8、**已完成**orderStatus=1
- 待处理订单提供两种操作:
- "确认收款":仅变更 payStatus=true已付款
- "确认完成":同时变更 payStatus=true + deliveryStatus=30 + orderStatus=1 + sendEndImg必填配送到达拍照上传
- 已完成订单仅展示,无操作按钮
- 状态文案适配货到付款:待收款/待发货/待收货/已完成
- Tab 颜色改为绿色主题
## Checkout 页面货到付款 payStatus 修复
- 修改 `src/api/shop/shopOrder/model/index.ts``OrderCreateRequest` 增加 `payStatus``payTime` 可选字段
- 修改 `src/pages/shop/checkout.tsx`
- 创建订单时直接传 `payStatus: true` + `payTime`(格式 `yyyy-MM-dd HH:mm:ss`
- 防止后端定时任务自动删除未付款的货到付款订单
## 门店中心 Tab 改为三个(全部 + 待处理 + 已完成)
- 重写 `src/pages/store/center/index.tsx`Tab 从2个改为3个
- 参考后台管理 `shop-admin``statusFilter` 映射:
- 全部:不传 statusFilterparams: `[{}]`
- 待处理:合并 `statusFilter=1`(待发货)+ `statusFilter=8`(已关闭)
- 已完成:`statusFilter=5`
- 操作按钮逻辑改为按订单状态判断(`isOrderActionable`),不再按 Tab 判断
- 已完成/已关闭订单:无操作按钮,无删除按钮
- 其他订单:显示"确认收款"/"确认完成"和"删除订单"
- 状态文案完善:已完成、已关闭、待收款、待发货、待收货、进行中
- 移除"确认收款"按钮:货到付款场景下,"确认完成"操作已包含 `payStatus=true` 设置,无需单独的"确认收款"入口
- 确认完成时设置 `deliveryStatus=30`(已收货)+ `deliveryTime`(收货时间),与后台"确认收货"逻辑对齐
- `sendEndImg` 用 JSON 数组保存多张图片(避免 OSS URL 中 `,` 解析错误),解析时兼容旧逗号分隔数据
- 修复 `OrderCard.getCardStatus` 状态判断顺序 bug
- 旧逻辑:先判 `deliveryStatus=30` → "待收货",导致 `orderStatus=1` 的"已完成"订单状态栏错显示"待收货"
- 新逻辑:`orderStatus=1`(已完成)作为终态最先判断;`deliveryStatus=30` 单独显示"已收货"(绿色),与"待收货"(蓝色)区分
## 用户页面数据加载优化
- `src/pages/user/user.tsx`:优化余额/积分/优惠券/订单统计数据加载体验
-`useRequest` 添加 `cacheKey` + `cacheTime=30s`30s 内重复返回页面直接展示缓存数据
- 用骨架屏(`animate-pulse`)替代 `...` 占位符,只在无缓存数据时显示骨架
- 有缓存数据时瞬间渲染,后台静默刷新