Forráskód Böngészése

fix(order): 优化售后订单及退款记录展示逻辑

- after-sales-order页面延迟加载表格数据,避免无效请求
- 支持从路由参数中获取订单号并自动填写搜索栏
- order-detail页面退款记录显示支持动态计算数量
- 退款记录“查看”按钮仅在存在退款记录时显示
- 服务层区分星闪豹(XSB)业务取消或关闭订单状态的逻辑
- 退款推送接口修改URL配置,修正推送地址错误
- 增加事务传播行为设置,优化退款推送流程稳定性
Sheep 3 hete
szülő
commit
6224d532c0

+ 7 - 7
src/views/order-manage/after-sales-order/index.vue

@@ -20,8 +20,8 @@ import {
 } from '../normal-order/normal-order';
 
 const route = useRoute();
-
 const router = useRouter();
+const queryOrderNumber = Array.isArray(route.query.orderNumber) ? route.query.orderNumber[0] : route.query.orderNumber;
 // const ShipmentModal = useTemplateRef('Shipment');
 const columns: NaiveUI.TableColumn<Api.delivery.deliveryOrder>[] = [
   {
@@ -160,17 +160,17 @@ function handleAfterSalesOrderDetail(row: Api.delivery.deliveryOrder) {
   });
 }
 
-onMounted(() => {
-  setTimeout(async () => {
-    await setFieldsValue({ orderNumber: route.query.orderNumber });
-    refresh();
-  }, 1000);
+onMounted(async () => {
+  if (queryOrderNumber) {
+    await setFieldsValue({ orderNumber: queryOrderNumber });
+  }
+  refresh();
 });
 </script>
 
 <template>
   <LayoutTable>
-    <ZTable :columns="columns" :api="fetchGetAfterSalesOrderList" @register="registerTable">
+    <ZTable :columns="columns" :api="fetchGetAfterSalesOrderList" :immediate="false" @register="registerTable">
       <template #op="{ row }">
         <NButton size="small" type="primary" ghost @click="handleAfterSalesOrderDetail(row)">售后详情</NButton>
         <NButton size="small" type="primary" ghost @click="handleOrderDetail(row)">订单详情</NButton>

+ 13 - 8
src/views/order-manage/order-detail/index.vue

@@ -309,13 +309,18 @@ onMounted(async () => {
     handleShip();
   }
 });
-function getRefundRecordText() {
+function getRefundRecordCount() {
   const info = orderInfo.value as any;
-  if (!info) return '暂无';
-  const count =
+  if (!info) return 0;
+  return (
     Number(info.backendOrderRefundLogCount) ||
     (Array.isArray(info.refundOrderList) ? info.refundOrderList.length : 0) ||
-    0;
+    0
+  );
+}
+
+function getRefundRecordText() {
+  const count = getRefundRecordCount();
   return count > 0 ? `${count}条` : '暂无';
 }
 </script>
@@ -399,16 +404,16 @@ function getRefundRecordText() {
             </NButton>
           </div>
 -->
-          <div>
-            退款记录:{{ getRefundRecordText() }}
+          <div class="flex items-center">
+            <span>退款记录:{{ getRefundRecordText() }}</span>
             <NButton
-              v-if="orderInfo.refundOrderList && orderInfo.refundOrderList.length > 0"
+              v-if="getRefundRecordCount() > 0"
               size="small"
               quaternary
               type="primary"
               @click="handleSaleOrder(orderInfo)"
             >
-              查看
+              查看详情
             </NButton>
           </div>
         </NCard>