LtyhShop/pc/components/svipPrice.vue
2025-04-09 14:59:26 +08:00

85 lines
2.3 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--商品价格包括普通价会员价-->
<script setup lang="ts">
import {toRefs, reactive, computed} from 'vue'
import { useAppStore } from '~/stores/app'
import { GlobalDatas } from '~/types/user'
const props = defineProps({
//是否展示返回按钮
productPrice: {
type: Object ,
default: null,
},
//普通商品样式
priceStyle: {
type: Object,
default: null,
},
topStyle: {
type: Object,
default: null,
}
})
const { productPrice, priceStyle, topStyle } = toRefs(props)
//全局配置
const appStore = useAppStore()
const globalData = computed(()=>reactive<GlobalDatas>(<GlobalDatas>appStore?.globalData))
</script>
<template>
<div class="acea-row items-baseline line-heightOne">
<div class="x-money mr-8px acea-row items-baseline relative font-color" :style="topStyle">
<span class="oppoSans-M"></span>
<div class="dinProSemiBold vipPrice" :style="priceStyle">
{{ globalData.userIsPaidMember && productPrice.isPaidMember ? productPrice.vipPrice : productPrice.price }}
</div>
</div>
<div
v-if="globalData.userIsPaidMember && productPrice.isPaidMember"
class="svip-icon acea-row row-middle h-18px lh-19px"
>
<div class="text-11px">SVIP会员价</div>
</div>
<div
v-if="!globalData.userIsPaidMember && globalData.paidMemberPriceDisplay === 'all' && productPrice.isPaidMember"
class="svip-price acea-row row-middle"
>
<div class="icon pl-10px h-18px lh-19px" :class="productPrice.vipPrice.length>5?'text-7px':'text-11px'">SVIP</div>
<div class="price ml-3px dinProSemiBold" :class="productPrice.vipPrice.length>5?'text-13px':''">¥ {{ productPrice.vipPrice }}</div>
</div>
</div>
</template>
<style scoped lang="scss">
.x-money {
top: 3px;
font-weight: 700;
}
.vipPrice {
}
.svip-price {
padding: 0 6px 0 0;
background: #fff0d1;
border-radius: 30px 28px 28px 13px;
.icon {
font-weight: 600;
color: #fddaa4;
padding-right: 3px;
padding: 0 3px 0 5px;
border-radius: 8px 0 8px 1px;
background: linear-gradient(180deg, #484643 100%, #1f1b17 100%);
}
.price {
color: #333333;
}
}
.svip-icon {
padding: 0 8px;
background: linear-gradient(180deg, #fdf6ec 0%, #ffe3b7 100%);
color: #70490c;
border-radius: 18px 20px 20px 0.4px;
}
</style>