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

4.8 KiB
Raw Blame History

  • 修改 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: booleanfalse=未付款,true=已付款
    • deliveryStatus: number10=未发货,20=已发货,30=发货已完成
    • orderStatus: number0=正常,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.tsOrderCreateRequest 增加 payStatuspayTime 可选字段
  • 修改 src/pages/shop/checkout.tsx
    • 创建订单时直接传 payStatus: true + payTime(格式 yyyy-MM-dd HH:mm:ss
    • 防止后端定时任务自动删除未付款的货到付款订单

门店中心 Tab 改为三个(全部 + 待处理 + 已完成)

  • 重写 src/pages/store/center/index.tsxTab 从2个改为3个
  • 参考后台管理 shop-adminstatusFilter 映射:
    • 全部:不传 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=30s30s 内重复返回页面直接展示缓存数据
    • 用骨架屏(animate-pulse)替代 ... 占位符,只在无缓存数据时显示骨架
    • 有缓存数据时瞬间渲染,后台静默刷新