Files
mp-vue/docs/ORDER_DETAIL_BUTTON_IMPROVEMENTS.md

195 lines
5.4 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.

# 订单详情页面按钮设计改进
## 改进概述
针对订单详情页面按钮设计的问题,我们进行了系统性的改进,使按钮显示逻辑更加完整、准确,并增加了缺失的关键操作功能。
## 主要改进内容
### 1. 🔧 **完善按钮显示逻辑**
#### 改进前
```vue
<!-- 简单的条件判断逻辑不完整 -->
<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>
```
#### 改进后
```vue
<!-- 按支付状态分组逻辑更清晰 -->
<template v-if="form.payStatus === 0">
<!-- 未付款状态的操作 -->
</template>
<template v-if="form.payStatus === 1">
<!-- 已付款状态的操作 -->
</template>
<template v-if="isRefundStatus(form.orderStatus)">
<!-- 退款相关操作 -->
</template>
```
### 2. 🎯 **新增关键操作按钮**
| 新增按钮 | 显示条件 | 功能说明 |
|---------|---------|---------|
| 修改订单 | 未付款且未完成 | 允许修改订单信息 |
| 确认收货 | 已发货且未完成 | 管理员代客户确认收货 |
| 同意退款 | 退款申请中 | 处理退款申请 |
| 拒绝退款 | 退款申请中 | 拒绝退款申请 |
| 重新处理 | 退款被拒绝 | 重新提交退款申请 |
| 申请退款 | 已完成或已发货 | 为订单申请退款 |
### 3. 🛡️ **添加辅助判断函数**
```typescript
// 判断是否为取消状态
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. 确认收货(管理员代操作)
```typescript
const handleConfirmReceive = () => {
// 将订单状态更新为已完成
// deliveryStatus: 30 (已收货)
// orderStatus: 1 (已完成)
};
```
### 2. 退款处理
```typescript
const handleApproveRefund = () => {
// 同意退款orderStatus: 6 (退款成功)
};
const handleRejectRefund = () => {
// 拒绝退款orderStatus: 5 (退款被拒绝)
};
const handleRetryRefund = () => {
// 重新处理orderStatus: 4 (退款申请中)
};
```
### 3. 申请退款
```typescript
const handleApplyRefund = () => {
// 申请退款orderStatus: 4 (退款申请中)
// 记录申请时间refundApplyTime
};
```
## 用户体验改进
### 1. 操作确认
- 所有危险操作都有确认对话框
- 明确的操作说明和后果提示
### 2. 状态反馈
- 操作成功后显示明确的提示信息
- 操作失败时显示具体的错误原因
- 加载状态指示器
### 3. 按钮布局
- 按重要性和使用频率排序
- 危险操作使用红色样式
- 主要操作使用蓝色样式
## 实施效果
### 1. 功能完整性
✅ 覆盖了所有订单状态的操作需求
✅ 提供了完整的订单生命周期管理
✅ 支持退款流程的完整处理
### 2. 逻辑准确性
✅ 按钮显示条件准确匹配业务流程
✅ 避免了不合理的操作组合
✅ 状态判断逻辑清晰可维护
### 3. 用户体验
✅ 操作流程更加直观
✅ 减少了用户的困惑和误操作
✅ 提供了及时的反馈和确认
## 后续优化建议
### 1. 权限控制
- 根据用户角色显示不同的操作按钮
- 财务人员可以处理退款,普通管理员不能
### 2. 批量操作
- 支持批量发货
- 支持批量退款处理
### 3. 操作日志
- 记录所有订单操作的历史
- 显示操作人员和操作时间
### 4. 自动化流程
- 超时自动取消未付款订单
- 自动确认收货发货后N天
## 总结
通过这次改进,订单详情页面的按钮设计变得更加完整、准确和用户友好。新的设计不仅解决了原有的逻辑问题,还增加了重要的功能,为订单管理提供了更好的支持。
这些改进将显著提升管理员的工作效率,减少操作错误,并为用户提供更好的订单处理体验。