Browse Source

feat(create-order): 优化 PaymentInfo 组件以适应不同订单类型

- 添加支付时间、支付状态和实付金额列
- 根据是否是管理后台创建的订单动态显示列
- 优化订单数据的获取和展示逻辑

Signed-off-by: tangshizhe <48740614+tangshizhe@users.noreply.github.com>
tangshizhe 1 month ago
parent
commit
56e2905826

+ 59 - 4
src/views/create-order/components/order-detail-submodule/PaymentInfo.vue

@@ -18,7 +18,7 @@
         <TableCard
           class="payment-info-content-table"
           :table-data="paymentDetailList"
-          :columns="paymentDetailColumns"
+          :columns="computedPaymentDetailColumns"
           width="1108px"
         >
           <template v-slot:return_voucher_url="{ row }">
@@ -121,6 +121,37 @@ export default {
             return row.bank_flow || row.return_code
           }
         },
+        {
+          label: '支付时间',
+          prop: 'pay_time',
+          width: '112',
+          render (row) {
+            return defaultRender(row.pay_time)
+          },
+          visible: true
+        },
+        {
+          label: '支付状态',
+          prop: 'order_status',
+          width: '90',
+          render (row) {
+            const val = row.order_status || 0;
+            if (val == 0) {
+                return '未支付'
+            } else if (val == 1) {
+                return '已支付'
+            } else if (val == -1) {
+                return '逻辑删除'
+            } else if (val == -2) {
+                return '已取消'
+            } else if (val == -3) {
+                return '已退款'
+            } else {
+                return '-'
+            }
+          },
+          visible: true
+        },
         {
           label: '支付户名',
           prop: 'pay_account_name',
@@ -137,6 +168,15 @@ export default {
             return row.flow_money ? '¥' + this.returnAmount(row.flow_money) : this.returnAmount(0)
           }
         },
+        {
+          label: '实付金额',
+          prop: 'pay_money',
+          width: '90',
+          render: (row) => {
+            return row.pay_money ? '¥' + this.returnAmount(row.pay_money) : this.returnAmount(0)
+          },
+          visible: true
+        },
         {
           label: '支付凭证',
           prop: 'return_voucher_url',
@@ -244,10 +284,10 @@ export default {
     }),
     // 是否是管理后台创建的订单 1为是 0不是
     isBackstageOrder () {
-      return this.orderDetail?.orderData?.is_backstage_order || 0;
+      return this.orderData?.is_backstage_order || 0;
     },
     returnStatus() {
-      const val = this.orderDetail?.orderData?.return_status || 0;
+      const val = this.orderData?.return_status || 0;
       if (val == 0) {
           return '未回款'
       } else if (val == 1) {
@@ -265,10 +305,25 @@ export default {
       return this.orderDetail?.orderData || {};
     },
     paymentDetailList () {
-      return this.returnRes?.returnInfo || [];
+      const list = this.returnRes?.returnInfo || [];
+      if(!this.isBackstageOrder) {
+        const { pay_time, pay_money, order_status } = this.orderData || {};
+        list[0].pay_time = pay_time || '-'
+        list[0].pay_money = pay_money || '-'
+        list[0].order_status = order_status || '-'
+        return list
+      } else {
+        return list;
+      }
     },
     orderTransfer () {
       return this.orderDetail?.orderTransfer || [];
+    },
+    // 根据 isBackstageOrder 控制哪些列可见
+    computedPaymentDetailColumns() {
+      return this.isBackstageOrder === 1 
+        ? this.paymentDetailColumns.filter(column => !column.visible)
+        : this.paymentDetailColumns;
     }
   },
   methods: {