优化:重新设计不同订单状态下的按钮
This commit is contained in:
194
docs/ORDER_DETAIL_BUTTON_IMPROVEMENTS.md
Normal file
194
docs/ORDER_DETAIL_BUTTON_IMPROVEMENTS.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# 订单详情页面按钮设计改进
|
||||
|
||||
## 改进概述
|
||||
|
||||
针对订单详情页面按钮设计的问题,我们进行了系统性的改进,使按钮显示逻辑更加完整、准确,并增加了缺失的关键操作功能。
|
||||
|
||||
## 主要改进内容
|
||||
|
||||
### 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天)
|
||||
|
||||
## 总结
|
||||
|
||||
通过这次改进,订单详情页面的按钮设计变得更加完整、准确和用户友好。新的设计不仅解决了原有的逻辑问题,还增加了重要的功能,为订单管理提供了更好的支持。
|
||||
|
||||
这些改进将显著提升管理员的工作效率,减少操作错误,并为用户提供更好的订单处理体验。
|
||||
Reference in New Issue
Block a user