Quellcode durchsuchen

feat(api): 新增退货预约和退货物流接口类型定义

新增 `RefundAppointment` 和 `OrderRefundDelivery` 接口,用于描述退货预约信息及退货物流相关信息。同时在订单详情模态框中展示退货物流信息,包括运单号、发货时间、凭证图片等,并支持复制运单号功能。
zhangtao vor 3 Wochen
Ursprung
Commit
ea29ebb585
2 geänderte Dateien mit 164 neuen und 0 gelöschten Zeilen
  1. 143 0
      src/typings/api.d.ts
  2. 21 0
      src/views/delivery/after-sales-order/order-modal.vue

+ 143 - 0
src/typings/api.d.ts

@@ -1440,7 +1440,150 @@ declare namespace Api {
       completed: number;
       cancel: number;
     }
+    interface RefundAppointment {
+      /**
+       * 预约时间
+       */
+      appointmentTime?: string;
+      /**
+       * 客户姓名
+       */
+      customerName?: string;
+      /**
+       * 配送地址
+       */
+      deliveryAddress?: string;
+      /**
+       * 是否已经支付运费
+       */
+      hasPaidShippingFee?: boolean;
+      /**
+       * 预约ID
+       */
+      id?: number;
+      /**
+       * 联系电话
+       */
+      phoneNumber?: string;
+      /**
+       * 退货方式(1-上门取件,2用户自送)
+       */
+      refundMethod?: number;
+      /**
+       * 退款单号
+       */
+      refundNumber?: string;
+      /**
+       * 运费
+       */
+      shippingFee?: number;
+      /**
+       * 特殊要求
+       */
+      specialRequirements?: string;
+      /**
+       * 预约状态(0-待处理,1-已确认,2-已完成,3-已取消)
+       */
+      status?: number;
+      [property: string]: any;
+    }
+    interface OrderRefundDelivery {
+      /**
+       * 创建时间
+       */
+      createTime?: string;
+      /**
+       * 期望送达时间
+       */
+      deliveryTime?: number;
+      /**
+       * 物流公司id
+       */
+      deyId: number;
+      /**
+       * 物流公司名称
+       */
+      deyName: string;
+      /**
+       * 物流编号
+       */
+      deyNu: string;
+      /**
+       * 图片凭证
+       */
+      imgs?: string;
+      /**
+       * 是否支付
+       */
+      pay?: boolean;
+      /**
+       * 支付方 1 店铺、2 买家
+       */
+      payer?: string;
+      /**
+       * 配送价格
+       */
+      price?: number;
+      /**
+       * 收件人地址
+       */
+      receiverAddr?: string;
+      /**
+       * 收件人手机
+       */
+      receiverMobile?: string;
+      /**
+       * 收件人姓名
+       */
+      receiverName?: string;
+      /**
+       * 收件人邮政编码
+       */
+      receiverPostCode?: string;
+      /**
+       * 收件人座机
+       */
+      receiverTelephone?: string;
+      /**
+       * 退货物流信息id
+       */
+      refundDeliveryId?: number;
+      /**
+       * 退款编号
+       */
+      refundSn: string;
+      /**
+       * 发送人手机号码
+       */
+      senderMobile?: string;
+      /**
+       * 描述
+       */
+      senderRemarks?: string;
+      /**
+       * 店铺id
+       */
+      shopId: number;
+      /**
+       * 计算价格时间
+       */
+      touchTime?: number;
+      /**
+       * 用户id
+       */
+      userId: string;
+      [property: string]: any;
+    }
     interface OrderRefund {
+      /**
+       * 配送预约信息
+       */
+      RefundAppointment: RefundAppointment;
+      /**
+       * 退货信息
+       */
+      refundDelivery: OrderRefundDelivery;
+
       /**
        * dvyType
        *

+ 21 - 0
src/views/delivery/after-sales-order/order-modal.vue

@@ -101,6 +101,27 @@ function getImgFils() {
           <div>积分抵扣: {{ (orderInfo.orderOffsetPoints / 100).toFixed(2) || '---' }}元</div>
           <div>实际付款: {{ orderInfo.actualTotal || '---' }}元</div>
         </NDescriptionsItem>
+        <NDescriptionsItem v-if="orderInfo.refundDelivery" label="包裹">
+          <div>发货人手机号码: {{ orderInfo.refundDelivery.receiverMobile || '---' }}</div>
+          <div>发货时间: {{ orderInfo.refundDelivery.createTime || '--' }}</div>
+          <div class="flex items-center">
+            运单号: {{ orderInfo.refundDelivery.deyName || '---' }} {{ orderInfo.refundDelivery.deyNu || '---' }}
+            <div @click="copyTextToClipboard(orderInfo.refundDelivery.deyNu)">
+              <SvgIcon icon="bxs:copy" class="ml2 cursor-pointer text-[#f97316]"></SvgIcon>
+            </div>
+          </div>
+          <div class="mt2 flex items-center">
+            <div class="min-w-50px">凭证:</div>
+            <NScrollbar x-scrollable>
+              <div v-if="orderInfo.refundDelivery.imgs">
+                <template v-for="item in orderInfo.refundDelivery.imgs.split(',')" :key="item">
+                  <NImage class="mr3 h-[80px] min-w-80px w-[80px] rounded-lg" lazy :src="item" />
+                </template>
+              </div>
+              <div v-else>--</div>
+            </NScrollbar>
+          </div>
+        </NDescriptionsItem>
       </NDescriptions>
       <NDivider />
       <NCard title="退款商品" :bordered="false">