| | |
| | | <div class="order-card-title"> |
| | | <div class="order-card-title-top"> |
| | | <div class="order-card-title-text">{{ title }}</div> |
| | | <div class="order-card-title-status">{{ status }}</div> |
| | | <div class="order-card-title-status"> |
| | | {{ LifeRechargeConstants.LifePayOrderFrontStatusEnumText[status] }} |
| | | </div> |
| | | </div> |
| | | <div class="order-card-title-ordernum"> |
| | | {{ `订单编号:${'JF202502191515350002'}` }} |
| | | <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.LifePayOrderFrontStatusEnum.支付成功" |
| | | @click="emit('goApplyRefund', orderNo)" |
| | | > |
| | | 申请退款 |
| | | </div> |
| | | <div |
| | | class="order-card-action" |
| | | v-if="status === LifeRechargeConstants.LifePayOrderFrontStatusEnum.退款失败" |
| | | @click="emit('goRefundDetail', orderNo)" |
| | | > |
| | | 详情 |
| | | </div> |
| | | </slot> |
| | | </div> |
| | | </div> |
| | | <div class="order-card-content"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { LifeRechargeConstants } from '@life-payment/core-vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'OrderCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | title: string; |
| | | status: string; |
| | | status: LifeRechargeConstants.LifePayOrderFrontStatusEnum; |
| | | orderNo: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'goApplyRefund', orderNo: string): void; |
| | | (e: 'goRefundDetail', orderNo: string): void; |
| | | }>(); |
| | | </script> |
| | | <style lang="scss"> |
| | | .order-card { |
| | | border: 1px solid #e8e8e8; |
| | | border-radius: 12px; |
| | | padding: 20px; |
| | | |
| | | .order-card-title { |
| | | display: flex; |
| | | flex-direction: column; |
| | | border-bottom: 1px solid #e8e8e8; |
| | | padding-bottom: 20px; |
| | | margin-bottom: 20px; |
| | | |
| | | .order-card-title-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | color: #333333; |
| | | font-size: 28px; |
| | | line-height: 40px; |
| | | font-weight: 600; |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | .order-card-title-ordernum { |
| | | font-size: 24px; |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | </style> |