Browse Source

fix: 修正退款状态逻辑以支持新的状态码

- 在退款项组件中,将状态 '11' 添加到需高亮显示为红色的状态列表中
- 将显示“同意退款”按钮的条件从状态 '8' 更正为状态 '9'
- 更新买家物流状态判断逻辑,将状态 '8'、'9'、'10' 视为“已收货”
- 在退款详情对话框中,调整状态判断逻辑以匹配新的状态码映射关系(例如,状态 '10' 对应退款成功,'11' 对应退款已撤销)
- 更新状态码映射字典,新增状态 '8'(商家已签收)和 '11'(退款已撤销),并调整了状态 '9' 和 '10' 的描述
ylong 21 hours ago
parent
commit
1f44380e1f

+ 20 - 19
src/views/mallOrder/refund/components/refund-detail-dialog.vue

@@ -66,7 +66,7 @@
                                 >
                             </template>
 
-                            <template v-else-if="String(form.status) === '9'">
+                            <template v-else-if="String(form.status) === '10'">
                                 <div>退款成功时间:{{ form.finishTime }}</div>
                                 <div
                                     >退款金额:¥
@@ -92,7 +92,7 @@
                                 />
                                 <el-step
                                     :title="
-                                        String(form.status) === '10'
+                                        String(form.status) === '11'
                                             ? '退款已撤销'
                                             : '卖家处理退款申请'
                                     "
@@ -103,7 +103,7 @@
                                 <el-step title="买家申请退货退款" />
                                 <el-step
                                     :title="
-                                        String(form.status) === '10'
+                                        String(form.status) === '11'
                                             ? '退款已撤销'
                                             : '卖家处理退货申请'
                                     "
@@ -644,7 +644,7 @@
     // 进度条状态
     const processStatus = computed(() => {
         const status = Number(form.value.status);
-        if ([5, 6, 10].includes(status)) {
+        if ([5, 6, 11].includes(status)) {
             return 'error';
         }
         return 'process';
@@ -656,12 +656,12 @@
         if (isRefundOnly.value) {
             // 1:申请, 2,3:协商中, 5:驳回, 6:超时关闭 -> 停在第2步(卖家处理)
             if ([1, 2, 3, 5, 6].includes(status)) return 1;
-            // 4:审核通过, 7:买家已发货, 8:确认收货 -> 停在第3步(退款完毕前)
-            if ([4, 7, 8].includes(status)) return 2;
-            // 9:退款成功 -> 全绿(第3步完成)
-            if (status === 9) return 3;
-            // 10:退款已撤销 -> 停在第2步
-            if (status === 10) return 1;
+            // 4:审核通过, 7:买家已发货, 8:商家已签收, 9:确认收货 -> 停在第3步(退款完毕前)
+            if ([4, 7, 8, 9].includes(status)) return 2;
+            // 10:退款成功 -> 全绿(第3步完成)
+            if (status === 10) return 3;
+            // 11:退款已撤销 -> 停在第2步
+            if (status === 11) return 1;
             return 1;
         }
 
@@ -670,12 +670,12 @@
         if ([1, 2, 3, 5, 6].includes(status)) return 1;
         // 4:审核通过(商家同意退货,等待买家退货) -> 停在第3步(买家退货)
         if (status === 4) return 2;
-        // 7:买家已发货, 8:确认收货 -> 停在第4步(退款完毕前)
-        if ([7, 8].includes(status)) return 3;
-        // 9:退款成功 -> 全绿(第4步完成)
-        if (status === 9) return 4;
-        // 10:退款已撤销 -> 停在第2步
-        if (status === 10) return 1;
+        // 7:买家已发货, 8:商家已签收, 9:确认收货 -> 停在第4步(退款完毕前)
+        if ([7, 8, 9].includes(status)) return 3;
+        // 10:退款成功 -> 全绿(第4步完成)
+        if (status === 10) return 4;
+        // 11:退款已撤销 -> 停在第2步
+        if (status === 11) return 1;
         return 1;
     });
 
@@ -797,9 +797,10 @@
             5: '审核驳回',
             6: '超时关闭',
             7: '买家已发货',
-            8: '确认收货',
-            9: '退款成功',
-            10: '退款已撤销'
+            8: '商家已签收',
+            9: '确认收货',
+            10: '退款成功',
+            11: '退款已撤销'
         };
         return map[key] || status;
     };

+ 6 - 3
src/views/mallOrder/refund/components/refund-item.vue

@@ -121,7 +121,9 @@
                 <div
                     class="font-bold mb-1"
                     :class="{
-                        'text-red-500': ['5', '6', '10'].includes(item.status)
+                        'text-red-500': ['5', '6', '10', '11'].includes(
+                            item.status
+                        )
                     }"
                 >
                     <dict-data
@@ -135,7 +137,7 @@
                         type="primary"
                         size="small"
                         @click="$emit('confirm-refund', item)"
-                        v-if="item.status == 8 && item.moneyStatus == 1"
+                        v-if="item.status == 9 && item.moneyStatus == 1"
                         >同意退款</el-button
                     >
                 </div>
@@ -217,7 +219,8 @@
     const getBuyerLogisticsStatus = (item) => {
         const status = String(item.status);
         if (status === '7') return '运输中';
-        if (item.finishTime) return '已收货';
+        if (['8', '9', '10'].includes(status) || item.finishTime)
+            return '已收货';
         return '未发货';
     };