wupengfei
6 天以前 14368e8a09c4b5793d0975f85e36a4c1d410ca36
packages/components/src/components/Card/OrderCard.vue
@@ -1,42 +1,44 @@
<template>
  <div class="order-card">
    <div class="order-card-title">
      <div class="order-card-title-top">
      <div class="order-card-title-left">
        <div class="order-card-title-text">{{ title }}</div>
        <div class="order-card-title-status">
          {{ LifeRechargeConstants.LifePayOrderStatusEnumText[status] }}
        </div>
      </div>
      <div class="order-card-title-ordernum-wrapper">
        <div class="order-card-title-ordernum">
          {{ `订单编号:${orderNo}` }}
        </div>
        <slot name="actions">
          <div
            class="order-card-action"
            v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.充值中"
            @click="emit('goApplyRefund', id)"
          >
            申请退款
          </div>
          <div
            class="order-card-action"
            v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.退款失败"
            @click="emit('goRefundDetail', orderNo)"
          >
            详情
          </div>
        </slot>
      </div>
      <div class="order-card-title-status">
        <img :src="LifePayOrderStatusEnumImg[status]" alt="" />
      </div>
    </div>
    <div class="order-card-content">
      <slot></slot>
    </div>
    <slot name="actions">
      <div class="order-card-footer" v-if="shoeFooter">
        <div
          v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.充值中"
          class="order-card-action"
          @click="emit('goApplyRefund', id)"
        >
          申请退款
        </div>
        <div
          class="order-card-action"
          v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.退款失败"
          @click="emit('goRefundDetail', orderNo)"
        >
          详情
        </div>
      </div>
    </slot>
  </div>
</template>
<script setup lang="ts">
import { LifeRechargeConstants } from '@life-payment/core-vue';
import { OssAssets } from '../../constants';
import { computed } from 'vue';
defineOptions({
  name: 'OrderCard',
@@ -55,4 +57,21 @@
  (e: 'goApplyRefund', id: string): void;
  (e: 'goRefundDetail', orderNo: string): void;
}>();
const LifePayOrderStatusEnumImg = {
  [LifeRechargeConstants.LifePayOrderStatusEnum.充值中]: OssAssets.card.Recharge,
  [LifeRechargeConstants.LifePayOrderStatusEnum.已失败]: OssAssets.card.Failed,
  [LifeRechargeConstants.LifePayOrderStatusEnum.已完成]: OssAssets.card.Success,
  [LifeRechargeConstants.LifePayOrderStatusEnum.待退款]: OssAssets.card.WaitRefund,
  [LifeRechargeConstants.LifePayOrderStatusEnum.已退款]: OssAssets.card.Refunded,
  [LifeRechargeConstants.LifePayOrderStatusEnum.退款失败]: OssAssets.card.RefundFail,
  [LifeRechargeConstants.LifePayOrderStatusEnum.退款中]: OssAssets.card.Refund,
};
const shoeFooter = computed(() => {
  return (
    props.status === LifeRechargeConstants.LifePayOrderStatusEnum.充值中 ||
    props.status === LifeRechargeConstants.LifePayOrderStatusEnum.退款失败
  );
});
</script>