183 lines
4.4 KiB
Vue
183 lines
4.4 KiB
Vue
<script setup lang="ts">
|
||
import { useUserStore } from '~/stores/user'
|
||
import {toRefs} from "vue";
|
||
import {couponTypeFilter} from "~/utils/filter";
|
||
const props = defineProps({
|
||
//弹窗是否弹起
|
||
couponModal: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
newPeopleCouponList: {
|
||
type: Array,
|
||
default: []
|
||
}
|
||
})
|
||
const { couponModal } = toRefs(props)
|
||
|
||
const { userInfo } = useUserStore()
|
||
|
||
//关闭弹窗
|
||
const emit = defineEmits(['onCloseSucceeded'])
|
||
const handleClose = async()=>{
|
||
emit('onCloseSucceeded')
|
||
}
|
||
|
||
const getTime = (time: string) => {
|
||
let reg = new RegExp('-', 'g') //g代表全部
|
||
return time ? time.split(' ')[0].substring(2, 10) : ''
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<!-- 新人礼弹窗 -->
|
||
<div class="coupon_modal" @touchmove.stop.prevent="moveStop" v-if="couponModal">
|
||
<div class="mask"></div>
|
||
<div class="_container">
|
||
<div class="_tit alimama">新人专属大礼包</div>
|
||
<div class="_look oppoSans-R">优惠券将发放至个人账户,可在“我的优惠券”查看</div>
|
||
<div class="_box cursors">
|
||
<div class="_item acea-row row-middle" v-for="item in newPeopleCouponList" :key="item.id">
|
||
<div class="_price_box">
|
||
<div class="_price line-heightOne"><span class="text-20px">¥</span>{{ item.money }}</div>
|
||
<div class="_man">满{{ item.minPrice }}可用</div>
|
||
</div>
|
||
<div class="flex-1 _desc">
|
||
<div v-if="item.category === 3" class="_text line1 line-heightOne oppoSans-M">全平台通用</div>
|
||
<div v-else class="_text line1 line-heightOne oppoSans-M">
|
||
仅限指定{{ couponTypeFilter(item.category) }}可用
|
||
</div>
|
||
<div v-if="item.isFixedTime" class="_end line1 line-heightOne oppoSans-M">
|
||
{{ getTime(item.useStartTime) + ' ~ ' + getTime(item.useEndTime) + '可用' }}
|
||
</div>
|
||
<div v-else class="_end line1 line-heightOne">{{ '领取后' + item.day + '天内可用' }}</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="_btn cursors" @click="handleClose()"></div>
|
||
<span class="guanbi iconfont icon-danchuangguanbi cursors" @click="handleClose()"></span>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<style lang="scss" scoped>
|
||
.mask {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background-color: rgba(0, 0, 0, 0.5);
|
||
z-index: 100;
|
||
}
|
||
.coupon_modal {
|
||
._container {
|
||
position: fixed;
|
||
left: 50%;
|
||
top: 50%;
|
||
transform: translate(-50%, -50%);
|
||
width: 370px;
|
||
height: 459px;
|
||
background-size: cover;
|
||
background: url('@/assets/images/coupon_modal_bg.png');
|
||
background-repeat: no-repeat;
|
||
z-index: 330;
|
||
|
||
._tit {
|
||
text-align: center;
|
||
// height: 42px;
|
||
font-size: 26px;
|
||
font-weight: 600;
|
||
color: #ffe9be;
|
||
// line-height: 42px;
|
||
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.2);
|
||
margin-top: 137px;
|
||
}
|
||
|
||
._look {
|
||
text-align: center;
|
||
font-size: 12px;
|
||
color: #fff;
|
||
margin: 10px auto 18px;
|
||
}
|
||
|
||
._box {
|
||
width: 370px;
|
||
height: 166px;
|
||
margin: auto;
|
||
padding: 0 26px;
|
||
overflow-y: scroll;
|
||
overflow-x: hidden;
|
||
._item {
|
||
width: 318px;
|
||
height: 82px;
|
||
background: url('@/assets/images/coupon_item_bg.png');
|
||
}
|
||
}
|
||
|
||
._item {
|
||
width: 100%;
|
||
height: 140px;
|
||
border-radius: 14px;
|
||
background-size: cover;
|
||
padding: 17px 0;
|
||
|
||
._price_box {
|
||
width: 118px;
|
||
padding: 0 15px;
|
||
text-align: center;
|
||
border-right: 1px dashed #e6e6e6;
|
||
|
||
._price {
|
||
font-size: 32px;
|
||
color: #e93323;
|
||
font-weight: 600;
|
||
}
|
||
|
||
._man {
|
||
font-size: 12px;
|
||
color: #666;
|
||
margin-top: 5px;
|
||
}
|
||
}
|
||
|
||
._desc {
|
||
padding: 0 18px;
|
||
width: 80px;
|
||
._text {
|
||
//width: 280px;
|
||
font-size: 18px;
|
||
color: #282828;
|
||
}
|
||
|
||
._end {
|
||
//width: 280px;
|
||
margin-top: 12px;
|
||
font-size: 12px;
|
||
color: #999;
|
||
}
|
||
}
|
||
|
||
~ ._item {
|
||
margin-top: 12px;
|
||
}
|
||
}
|
||
|
||
._btn {
|
||
width: 188px;
|
||
height: 44px;
|
||
background-size: cover;
|
||
background: url('@/assets/images/coupon_modal_btn.png');
|
||
margin: 23px auto 0;
|
||
}
|
||
|
||
.guanbi {
|
||
font-size: 24px;
|
||
color: #fff;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: -53px;
|
||
}
|
||
}
|
||
}
|
||
</style> |