|
|
@@ -9,7 +9,8 @@ type OrderCardProps = {
|
|
|
game: string
|
|
|
coins: number
|
|
|
quantity: number
|
|
|
- star: number
|
|
|
+ total: number
|
|
|
+ star?: number
|
|
|
avatar: string
|
|
|
nickname: string
|
|
|
refundApply: boolean
|
|
|
@@ -29,6 +30,10 @@ const handleCompleteClick = () => emit('complete', props)
|
|
|
const handleReviewClick = () => emit('review', props)
|
|
|
// const handleRefundClick = () => emit('refund', props)
|
|
|
const handleCancelClick = () => emit('cancel', props)
|
|
|
+
|
|
|
+const isDiscount = computed(() => {
|
|
|
+ return props.total < props.coins * props.quantity
|
|
|
+})
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
@@ -154,8 +159,15 @@ const handleCancelClick = () => emit('cancel', props)
|
|
|
>
|
|
|
{{ t('order.refund.refundingTip') }}
|
|
|
</p>
|
|
|
+ <div v-else />
|
|
|
|
|
|
<div class="order-card__total">
|
|
|
+ <div
|
|
|
+ v-if="isDiscount"
|
|
|
+ class="order-card__discount-tag"
|
|
|
+ >
|
|
|
+ <span>{{ t('order.detail.discount') }}</span>
|
|
|
+ </div>
|
|
|
<div class="order-card__total-label">
|
|
|
<span>{{ t('order.detail.totalLabel') }}</span>
|
|
|
<span
|
|
|
@@ -164,7 +176,7 @@ const handleCancelClick = () => emit('cancel', props)
|
|
|
/>
|
|
|
</div>
|
|
|
<p class="order-card__total-value">
|
|
|
- {{ formatNumber(coins * quantity) }}
|
|
|
+ {{ formatNumber(total) }}
|
|
|
</p>
|
|
|
</div>
|
|
|
</footer>
|
|
|
@@ -378,6 +390,24 @@ const handleCancelClick = () => emit('cancel', props)
|
|
|
line-height: 18px;
|
|
|
}
|
|
|
|
|
|
+.order-card__discount-tag {
|
|
|
+ height: 20px;
|
|
|
+ padding: 0 6px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ border-radius: 4px;
|
|
|
+ background-color: #ff6f32;
|
|
|
+ margin-right: 3px;
|
|
|
+
|
|
|
+ span {
|
|
|
+ color: #fff;
|
|
|
+ font-size: 11px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 14px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
.order-card__coin {
|
|
|
display: inline-block;
|
|
|
background-repeat: no-repeat;
|