Files
mp-vue/docs/ORDER_DETAIL_BUTTON_IMPROVEMENTS.md

5.4 KiB
Raw Blame History

订单详情页面按钮设计改进

改进概述

针对订单详情页面按钮设计的问题,我们进行了系统性的改进,使按钮显示逻辑更加完整、准确,并增加了缺失的关键操作功能。

主要改进内容

1. 🔧 完善按钮显示逻辑

改进前

<!-- 简单的条件判断逻辑不完整 -->
<a-button v-if="form.payStatus === 1 && form.deliveryStatus === 10">发货</a-button>
<a-button v-if="form.orderStatus === 0">取消订单</a-button>
<a-button v-if="form.orderStatus === 1 || form.orderStatus === 2">删除订单</a-button>

改进后

<!-- 按支付状态分组逻辑更清晰 -->
<template v-if="form.payStatus === 0">
  <!-- 未付款状态的操作 -->
</template>

<template v-if="form.payStatus === 1">
  <!-- 已付款状态的操作 -->
</template>

<template v-if="isRefundStatus(form.orderStatus)">
  <!-- 退款相关操作 -->
</template>

2. 🎯 新增关键操作按钮

新增按钮 显示条件 功能说明
修改订单 未付款且未完成 允许修改订单信息
确认收货 已发货且未完成 管理员代客户确认收货
同意退款 退款申请中 处理退款申请
拒绝退款 退款申请中 拒绝退款申请
重新处理 退款被拒绝 重新提交退款申请
申请退款 已完成或已发货 为订单申请退款

3. 🛡️ 添加辅助判断函数

// 判断是否为取消状态
const isCancelledStatus = (orderStatus?: number) => {
  return [2, 3].includes(orderStatus || 0);
};

// 判断是否为退款相关状态
const isRefundStatus = (orderStatus?: number) => {
  return [4, 5, 6, 7].includes(orderStatus || 0);
};

// 判断是否可以删除订单
const canDeleteOrder = (order: ShopOrder) => {
  return [1, 2, 6].includes(order.orderStatus || 0);
};

// 判断是否可以申请退款
const canApplyRefund = (order: ShopOrder) => {
  return (order.orderStatus === 1) || 
         (order.payStatus === 1 && order.deliveryStatus === 20 && order.orderStatus === 0);
};

完整的按钮显示矩阵

按订单状态分类的操作

支付状态 订单状态 发货状态 可用操作
未付款(0) 未完成(0) - 取消订单、修改订单
已付款(1) 未完成(0) 未发货(10) 发货、申请退款
已付款(1) 未完成(0) 已发货(20) 确认收货、申请退款
已付款(1) 已完成(1) 已发货(20) 删除订单、申请退款
- 已取消(2) - 删除订单
- 取消中(3) - 无操作
已付款(1) 退款申请中(4) - 同意退款、拒绝退款
已付款(1) 退款被拒绝(5) - 重新处理、删除订单
已付款(1) 退款成功(6) - 删除订单
已付款(1) 客户端申请退款(7) - 同意退款、拒绝退款

按钮优先级和样式

主要操作(蓝色按钮)

  • 发货
  • 确认收货
  • 同意退款

次要操作(默认按钮)

  • 修改订单
  • 申请退款
  • 重新处理

危险操作(红色按钮)

  • 取消订单
  • 删除订单
  • 拒绝退款

新增操作方法

1. 确认收货(管理员代操作)

const handleConfirmReceive = () => {
  // 将订单状态更新为已完成
  // deliveryStatus: 30 (已收货)
  // orderStatus: 1 (已完成)
};

2. 退款处理

const handleApproveRefund = () => {
  // 同意退款orderStatus: 6 (退款成功)
};

const handleRejectRefund = () => {
  // 拒绝退款orderStatus: 5 (退款被拒绝)
};

const handleRetryRefund = () => {
  // 重新处理orderStatus: 4 (退款申请中)
};

3. 申请退款

const handleApplyRefund = () => {
  // 申请退款orderStatus: 4 (退款申请中)
  // 记录申请时间refundApplyTime
};

用户体验改进

1. 操作确认

  • 所有危险操作都有确认对话框
  • 明确的操作说明和后果提示

2. 状态反馈

  • 操作成功后显示明确的提示信息
  • 操作失败时显示具体的错误原因
  • 加载状态指示器

3. 按钮布局

  • 按重要性和使用频率排序
  • 危险操作使用红色样式
  • 主要操作使用蓝色样式

实施效果

1. 功能完整性

覆盖了所有订单状态的操作需求 提供了完整的订单生命周期管理 支持退款流程的完整处理

2. 逻辑准确性

按钮显示条件准确匹配业务流程 避免了不合理的操作组合 状态判断逻辑清晰可维护

3. 用户体验

操作流程更加直观 减少了用户的困惑和误操作 提供了及时的反馈和确认

后续优化建议

1. 权限控制

  • 根据用户角色显示不同的操作按钮
  • 财务人员可以处理退款,普通管理员不能

2. 批量操作

  • 支持批量发货
  • 支持批量退款处理

3. 操作日志

  • 记录所有订单操作的历史
  • 显示操作人员和操作时间

4. 自动化流程

  • 超时自动取消未付款订单
  • 自动确认收货发货后N天

总结

通过这次改进,订单详情页面的按钮设计变得更加完整、准确和用户友好。新的设计不仅解决了原有的逻辑问题,还增加了重要的功能,为订单管理提供了更好的支持。

这些改进将显著提升管理员的工作效率,减少操作错误,并为用户提供更好的订单处理体验。