uniapp/components/diy-components/diy-coupon.vue

1123 lines
28 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.

<template>
<view
class="coupon-wrap"
v-if="computedCouponList.length > 0"
:style="[
value.couponType == 'img' && { backgroundImage: 'url(' + $util.img(value.couponBgUrl) + ')' },
value.couponType == 'color' && { backgroundColor: value.couponBgColor }
]"
>
<template v-if="value.style == '1'">
<swiper class="coupon-style-one" circular>
<swiper-item
v-for="(numItem, numIndex) in Math.ceil(computedCouponList.length / 3)"
:key="numIndex"
class="coupon-item-box"
>
<view
class="coupon-item"
v-for="(item, index) in computedCouponList"
:key="index"
v-if="index >= [numIndex * 3] && index < [numIndex + 1 * 3]"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/style1-bg.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
@click="couponAction(item, index)"
>
<view class="coupon-info">
<view class="coupon-num" :style="{ color: value.moneyColor }" v-if="!parseInt(item.discount)">
<text class="font-size-tag coupon-sign">¥</text>
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
</view>
<view class="coupon-num" :style="{ color: value.moneyColor }" v-else>
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
<view class="coupon-type font-size-tag" :style="{ color: value.limitColor }">
{{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
</view>
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >{{ value.btnStyle.text }}</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</swiper-item>
</swiper>
</template>
<template v-if="value.style == '2'">
<swiper class="coupon-style-two" circular>
<swiper-item
v-for="(numItem, numIndex) in Math.ceil(computedCouponList.length / 3)"
:key="numIndex"
class="coupon-item-box"
>
<view
class="coupon-item"
v-for="(item, index) in computedCouponList"
:key="index"
v-if="index >= [numIndex * 3] && index < [numIndex + 1 * 3]"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/coupon_bg1.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
@click="couponAction(item, index)"
>
<view class="coupon-info">
<view class="coupon-num" :style="{ color: value.moneyColor }" v-if="!parseInt(item.discount)">
<text class="font-size-tag coupon-sign">¥</text>
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
</view>
<view class="coupon-num" :style="{ color: value.moneyColor }" v-else>
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
<view class="coupon-type font-size-tag" :style="{ color: value.limitColor }">
{{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
</view>
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >{{ value.btnStyle.text || '领取' }}</view>
<view class="coupon-get use" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</swiper-item>
</swiper>
</template>
<template v-if="value.style == '3'">
<swiper class="coupon-style-three" circular>
<swiper-item
v-for="(numItem, numIndex) in Math.ceil(computedCouponList.length / 3)"
:key="numIndex"
class="coupon-item-box"
>
<view
class="coupon-item"
v-for="(item, index) in computedCouponList"
:key="index"
v-if="index >= [numIndex * 3] && index < [numIndex + 1 * 3]"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/coupon_shu.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
@click="couponAction(item, index)"
>
<view class="coupon-num" :style="{ color: value.moneyColor }" v-if="!parseInt(item.discount)">
<text class="font-size-tag coupon-sign">¥</text>
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
</view>
<view class="coupon-num" :style="{ color: value.moneyColor }" v-else>
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
<view class="coupon-type font-size-tag">
<text :style="{ color: value.limitColor }">{{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}</text>
<view class="item-text" v-if="">{{ item.goods_type == 1 ? '所有商品可用' : '指定商品可用' }}</view>
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >{{ value.btnStyle.text || '领取' }}</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</swiper-item>
</swiper>
</template>
<template v-if="value.style == '4'">
<swiper class="coupon-style-four" circular>
<swiper-item
v-for="(numItem, numIndex) in Math.ceil(computedCouponList.length / 3)"
:key="numIndex"
class="coupon-item-box"
>
<view
class="coupon-item"
v-for="(item, index) in computedCouponList"
:key="index"
v-if="index >= [numIndex * 3] && index < [numIndex + 1 * 3]"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/style4_bg.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
@click="couponAction(item, index)"
>
<view class="coupon-info">
<view class="coupon-num" :style="{ color: value.moneyColor }" v-if="!parseInt(item.discount)">
<text class="font-size-tag coupon-sign">¥</text>
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
</view>
<view class="coupon-num" :style="{ color: value.moneyColor }" v-else>
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
<view class="coupon-type font-size-tag" :style="{ color: value.limitColor }">
{{ item.at_least > 0 ? '满' + Number(item.at_least) + '元可用' : '无门槛优惠券' }}
</view>
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >
{{ value.btnStyle.text || '立即使用' }}
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</swiper-item>
</swiper>
</template>
<template v-if="value.style == '5'">
<view class="coupon-style-five">
<view class="coupon-all">
<view class="coupon-box">
<view class="coupon-list" v-for="(item, index) in computedCouponList" :key="index" @click="couponAction(item, index)">
<image :src="$util.img('public/uniapp/coupon/style5_bg.png')"></image>
<view class="coupon">
<view class="coupon-info">
<view class="coupon-num" v-if="item.discount == '0.00'" :style="{ color: value.moneyColor }">
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">元</text>
</view>
<view class="coupon-num" v-else :style="{ color: value.moneyColor }">
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
</view>
<view class="coupon-line"></view>
<view class="coupon-content">
<view class="coupon-type">
<view class="coupon-name" :style="{ color: value.nameColor }">{{ item.coupon_name }}</view>
<text class="coupon-least" :style="{ color: value.limitColor }" v-if="item.at_least > 0">满{{ Number(item.at_least) }}元可用</text>
<text class="coupon-least" :style="{ color: value.limitColor }" v-else>无门槛优惠券</text>
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >
{{ value.btnStyle.text || '立即领取' }}
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<template v-if="value.style == '6'">
<swiper class="coupon-style-six" circular>
<swiper-item
class="style-six-wrap"
v-for="(numItem, numIndex) in Math.ceil(computedCouponList.length / 3)"
:key="numIndex"
>
<view
class="coupon"
v-for="(item, index) in computedCouponList"
:key="index"
v-if="index >= [numIndex * 3] && index < [numIndex + 1 * 3]"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/style6-bg-1.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
@click="couponAction(item, index)"
>
<view class="coupon-content">
<view class="price-wrap">
<text class="price" :style="{ color: value.moneyColor }">{{ (item.discount == '0.00' ? item.money : item.discount) | moneyConduct }}</text>
<text class="unit">{{ item.discount == '0.00' ? '元' : '折' }}</text>
</view>
<text class="text">优惠券</text>
</view>
<text
class="btn"
v-if="item.useState == 0"
:style="{
color: value.btnStyle.textColor,
backgroundColor: value.btnStyle.bgColor,
borderTopLeftRadius: value.btnStyle.aroundRadius * 2 + 'rpx',
borderBottomLeftRadius: value.btnStyle.aroundRadius * 2 + 'rpx'
}"
>
<text class="btn-content">{{ value.btnStyle.text }}</text>
</text>
<text
class="btn"
v-if="parseInt(item.useState)"
:style="{
color: value.btnStyle.textColor,
backgroundColor: value.btnStyle.bgColor,
borderTopLeftRadius: value.btnStyle.aroundRadius * 2 + 'rpx',
borderBottomLeftRadius: value.btnStyle.aroundRadius * 2 + 'rpx'
}"
>
<text class="btn-content">去使用</text>
</text>
<text class="limit" :style="{ color: value.limitColor }" v-if="parseFloat(item.at_least) > 0">满{{ item.at_least | moneyConduct }}元使用</text>
<text class="limit" :style="{ color: value.limitColor }" v-else>无门槛使用</text>
</view>
<div
v-if="computedCouponList.length <= 2"
@click="$util.redirectTo('/pages/goods/category');"
class="coupon coupon-null"
:style="{
color: value.moneyColor,
backgroundImage: 'url(' + $util.img('public/uniapp/coupon/style6-bg-2.png') + ')',
marginRight: couponItemHeight + 'px',
marginLeft: couponItemHeight + 'px'
}"
>
<div class="coupon-content" :style="{ color: value.moneyColor }">
<span class="price">+</span>
<span class="text">暂无优惠券</span>
</div>
<span class="limit" :style="{ color: value.limitColor }">去逛逛</span>
</div>
</swiper-item>
</swiper>
</template>
<template v-if="value.style == '7'">
<scroll-view class="coupon-style-seven" scroll-x="true">
<view class="coupon-list" v-for="(item, index) in computedCouponList" :key="index" @click="couponAction(item, index)">
<image :src="$util.img('public/uniapp/coupon/style7_bg.png')"></image>
<view class="coupon">
<view class="coupon-info">
<view class="coupon-num" v-if="item.discount == '0.00'" :style="{ color: value.moneyColor }">
<text class="coupon-size">{{ item.money | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">元</text>
</view>
<view class="coupon-num" v-else :style="{ color: value.moneyColor }">
<text class="coupon-size">{{ item.discount | moneyConduct }}</text>
<text class="font-size-tag coupon-sign">折</text>
</view>
</view>
<view class="coupon-type">
<text class="coupon-name" :style="{ color: value.limitColor }" v-if="item.at_least > 0">满{{ Number(item.at_least) }}元可用</text>
<text class="coupon-name" :style="{ color: value.limitColor }" v-else>无门槛优惠券</text>
<view class="coupon-least" :style="{ color: value.limitColor }">有效期至{{ $util.timeStampTurnTime(item.end_time,'yearmonthday') }}</view>
</view>
<view class="coupon-line"></view>
<view class="coupon-get" :style="couponBtnStyle" v-if="item.useState == 0" >
{{ value.btnStyle.text || '立即领取' }}
</view>
<view class="coupon-get" :style="couponBtnStyle" v-if="parseInt(item.useState)" >去使用</view>
</view>
</view>
</scroll-view>
</template>
<ns-login ref="login"></ns-login>
</view>
</template>
<script>
// 优惠券
export default {
name: 'diy-coupon',
props: {
value: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
token: '',
couponList: [],
isHave: true,
couponBtnSwitch: false,
isSuccess: false,
load:true
};
},
created() {
this.getCanReceiveCouponQuery();
},
computed: {
computedCouponList() {
var list = [];
this.couponList.filter(function(item) {
if (item.count != item.lead_count) list.push(item);
});
return list;
},
couponItemHeight(){
var width = "";
const screenWidth = uni.getSystemInfoSync().safeArea.width || uni.getSystemInfoSync().screenWidth;
if(this.value.style == '1')
width = [screenWidth - (this.rpxUpPx(210)*3) - (this.rpxUpPx(this.value.margin.both*2)*2)]/6;
else if(this.value.style == '2')
width = [screenWidth - (this.rpxUpPx(210)*3) - (this.rpxUpPx(this.value.margin.both*2)*2)]/6;
else if(this.value.style == '3')
width = [screenWidth - (this.rpxUpPx(24)*2) - (this.rpxUpPx(194)*3) - (this.rpxUpPx(this.value.margin.both*2)*2)]/6;
else if(this.value.style == '4')
width = [screenWidth - (this.rpxUpPx(206)*3) - (this.rpxUpPx(this.value.margin.both*2)*2)]/6;
else if(this.value.style == '6')
width = [screenWidth - (this.rpxUpPx(208)*3) - (this.rpxUpPx(this.value.margin.both*2)*2)]/6;
return width;
},
couponBtnStyle() {
var css = '';
css += 'color:' + this.value.btnStyle.textColor + ';';
css += 'background-color:' + this.value.btnStyle.bgColor + ';';
css += 'border-radius:' + this.value.btnStyle.aroundRadius * 2 + 'rpx;';
return css;
}
},
methods: {
rpxUpPx(res){
const screenWidth = uni.getSystemInfoSync().safeArea.width || uni.getSystemInfoSync().screenWidth;
var data = screenWidth * parseInt(res) / 750;
return Math.floor(data);
},
couponTap(item, index) {
if (item.count == item.lead_count) {
this.$util.showToast({
title: '该优惠券已抢光'
});
return;
}
if (item.useState == 0) this.receiveCoupon(item, index);
else this.toGoodsList(item);
},
getCanReceiveCouponQuery() {
var data = {
num: this.value.count,
can_receive: 1
};
if (this.value.sources == 'diy') {
data.coupon_type_id_arr = this.value.couponIds.toString();
}
this.$api.sendRequest({
url: '/coupon/api/coupon/typelists',
data: data,
success: res => {
let data = res.data;
if (data != null) {
this.couponList = data;
this.couponList.forEach(v => {
if(v.max_fetch != 0 && v.member_coupon_num && v.member_coupon_num >= v.max_fetch){
v.useState = 1;
}else{
v.useState = 0;
}
});
}
}
});
},
couponAction(item, index){
if(item.useState == 0) {
this.receiveCoupon(item, index);
}else if(parseInt(item.useState)){
this.couponTap(item, index);
}
},
// 领取优惠券
receiveCoupon(item, index) {
let that = this;
if (this.couponBtnSwitch) return;
this.couponBtnSwitch = true;
let token = uni.getStorageSync('token');
if (token != '') {
this.$api.sendRequest({
url: '/coupon/api/coupon/receive',
data: {
coupon_type_id: item.coupon_type_id,
get_type: 2 //获取方式:1订单2.直接领取3.活动领取
},
success: res => {
var data = res.data;
let msg = res.message;
if (res.code == 0) {
msg = '领取成功';
if (res.data.is_exist == 1) {
for (let i = 0; i < that.couponList.length; i++) {
if (that.couponList[i].coupon_type_id == item.coupon_type_id) {
that.$set(that.couponList[i], 'useState', 1);
}
}
} else {
for (let i = 0; i < that.couponList.length; i++) {
if (that.couponList[i].coupon_type_id == item.coupon_type_id) {
that.$set(that.couponList[i], 'useState', 2);
}
}
}
}
this.$util.showToast({
title: msg
});
this.$forceUpdate();
this.couponBtnSwitch = false;
},
fail: res => {
this.couponBtnSwitch = false;
}
});
} else {
this.$refs.login.open('/pages/index/index');
this.couponBtnSwitch = false;
}
},
//去使用
toGoodsList(item) {
if (item.goods_type != 1) {
this.$util.redirectTo('/pages/goods/list', {
coupon: item.coupon_type_id
});
} else {
this.$util.redirectTo('/pages/goods/list', {});
}
}
},
filters: {
moneyConduct(value) {
var arr = value.split('.');
var str =
parseInt(
arr[1]
.split('')
.reverse()
.join('')
) + '';
str = str
.split('')
.reverse()
.join('');
if (str == 0) return arr[0];
else return arr[0] + '.' + str;
}
}
};
</script>
<style lang="scss">
.coupon-wrap {
background-size: cover;
background-repeat: no-repeat;
}
// 风格一
/deep/.coupon-style-one {
height: 110rpx;
.coupon-item-box {
display: flex;
box-sizing: border-box;
.coupon-item {
display: flex;
align-items: center;
justify-content: space-between;
width: 210rpx;
height: 110rpx;
background-repeat: no-repeat;
background-size: contain;
.coupon-get {
position: relative;
right: 14rpx;
font-size: 24rpx;
width: 26rpx;
line-height: 1.1;
}
.coupon-info {
width: 156rpx;
display: flex;
flex-direction: column;
align-items: center;
.coupon-type {
margin-top: 14rpx;
line-height: 1;
}
.coupon-num {
margin-top: -6rpx;
font-size: 40rpx;
line-height: 1;
}
}
}
}
}
// 风格二
/deep/.coupon-style-two {
height: 96rpx;
.coupon-item-box {
display: flex;
box-sizing: border-box;
.coupon-item {
display: flex;
align-items: center;
justify-content: space-between;
width: 210rpx;
height: 96rpx;
background-repeat: no-repeat;
background-size: contain;
.coupon-get {
position: relative;
top: 2rpx;
right: 12rpx;
font-size: 24rpx;
letter-spacing: 16rpx;
width: 26rpx;
&.use {
top: 0;
right: 4rpx;
letter-spacing: 4rpx;
}
}
.coupon-info {
width: 156rpx;
display: flex;
flex-direction: column;
align-items: center;
margin-top: -8rpx;
.coupon-type {
margin-top: 10rpx;
line-height: 1;
}
.coupon-num {
font-size: 40rpx;
line-height: 1;
}
}
}
}
}
// 风格三
/deep/.coupon-style-three {
height: 284rpx;
padding: 20rpx;
box-sizing: border-box;
.coupon-item-box {
height: 250rpx !important;
display: flex;
.coupon-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 206rpx;
height: 250rpx;
background-repeat: no-repeat;
background-size: contain;
.coupon-size {
font-size: 40rpx;
}
.coupon-type {
margin-top: 20rpx;
margin-bottom: 6rpx;
line-height: 1;
text-align: center;
}
.coupon-num {
margin-top: 8rpx;
line-height: 1;
}
.coupon-get {
width: 120rpx;
height: 46rpx;
line-height: 46rpx;
text-align: center;
font-size: 24rpx;
}
}
}
}
// 风格四
/deep/.coupon-style-four {
height: 108rpx;
.coupon-item-box {
display: flex;
box-sizing: border-box;
.coupon-item {
display: flex;
align-items: center;
justify-content: space-between;
width: 206rpx;
height: 108rpx;
background-repeat: no-repeat;
background-size: contain;
.coupon-get {
position: relative;
top: 0;
right: 12rpx;
font-size: 24rpx;
width: 26rpx;
line-height: 1.1;
}
.coupon-info {
width: 156rpx;
display: flex;
flex-direction: column;
align-items: center;
.coupon-type {
margin-top: 10rpx;
line-height: 1;
}
.coupon-num {
font-size: 40rpx;
line-height: 1;
}
}
}
}
}
/* 样式一 */
.coupon-all {
width: 100%;
flex-direction: row;
white-space: nowrap;
box-sizing: border-box;
line-height: 1;
}
.coupon-box {
display: inline-block;
margin-right: $margin-both;
position: relative;
}
.coupon-list {
position: relative;
line-height: 1;
}
.coupon {
width: 254rpx;
height: 114rpx;
border-radius: $border-radius;
overflow: hidden;
display: flex;
justify-content: space-between;
position: absolute;
left: 0;
top: 0;
.coupon-info {
width: 71%;
height: 100%;
padding: 10rpx 15rpx;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
.coupon-type {
color: #ffffff;
font-size: $font-size-activity-tag;
text-align: center;
overflow: hidden;
white-space: nowrap;
}
.coupon-num {
display: flex;
align-items: flex-end;
justify-content: center;
margin-bottom: 10rpx;
.coupon-sign {
margin-bottom: 4rpx;
}
.coupon-size {
font-size: 40rpx;
}
text {
line-height: 1;
}
}
}
.coupon-get {
width: 26%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
view {
line-height: 1.2;
font-size: $font-size-tag;
}
}
}
//风格五
.coupon-style-five {
.coupon-all {
.coupon-box {
width: 100%;
.coupon-list {
height: 160rpx;
position: relative;
padding: 10rpx 0;
image {
width: 100%;
height: 100%;
}
.coupon {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: flex-start;
.coupon-info {
width: 25%;
min-width: 25%;
max-width: 25%;
.coupon-num {
margin: 0;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 100%;
.coupon-size {
font-weight: bold;
}
.coupon-sign {
}
}
}
.coupon-line {
border-left: 1rpx dashed #999;
height: 65%;
}
.coupon-content {
display: flex;
width: 100%;
justify-content: space-between;
padding: 0 20rpx;
align-items: center;
.coupon-type {
.coupon-name {
font-size: 32rpx;
font-weight: bold;
width: 300rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.coupon-least {
font-size: 28rpx;
color: #999;
}
}
.coupon-get {
color: #fff;
background-color: #303133;
border-radius: 6rpx;
padding: 4rpx 8rpx;
margin-right: 20rpx;
font-size: $font-size-tag;
}
}
}
}
}
}
}
//风格六
.coupon-style-six {
height: 270rpx;
box-sizing: border-box;
.style-six-wrap {
display: flex;
}
.coupon {
margin-right: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 208rpx;
height: 270rpx;
background-repeat: no-repeat;
background-size: contain;
box-sizing: border-box;
position: relative;
flex-shrink: 0;
&::after {
content: '';
position: absolute;
left: 26rpx;
right: 26rpx;
bottom: 70rpx;
border-bottom: 2rpx dashed #999;
}
.btn {
position: absolute;
height: 36rpx;
min-width: 62rpx;
font-size: 24rpx;
top: 20rpx;
right: 0;
display: flex;
justify-content: center;
align-items: center;
line-height: 1;
padding: 0 4rpx 0 6rpx;
.btn-content {
display: inline-block;
line-height: 1;
transform: scale(0.8);
}
}
.coupon-content {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
font-size: 24rpx;
height: 200rpx;
.price-wrap {
margin-top: 60rpx;
}
.price {
font-size: 60rpx;
font-weight: bold;
line-height: 1;
}
.text {
position: relative;
color: #401d00;
margin-bottom: 16rpx;
&::after {
content: '';
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 20rpx;
right: -26rpx;
border-bottom: 1px solid #401d00;
}
&::before {
content: '';
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 20rpx;
left: -26rpx;
border-bottom: 2rpx solid #401d00;
}
}
.unit {
line-height: 1;
margin-top: 13px;
color: #222;
display: inline-block;
line-height: 1;
transform: scale(0.8);
}
}
.limit {
display: flex;
align-items: center;
justify-content: center;
height: 70rpx;
font-size: 24rpx;
font-weight: bold;
}
&.coupon-null {
.limit {
color: #333;
}
.unit {
color: #6f5640;
}
.text {
color: #6f5640;
}
.coupon-content .text::before,
.coupon-content .text::after {
border-color: #6f5640;
}
.coupon-content .price {
color: #999;
font-weight: inherit;
border: 4rpx solid #999;
border-radius: 50%;
height: 42rpx;
width: 42rpx;
line-height: 38rpx;
text-align: center;
font-size: 50rpx;
margin-top: 60rpx;
}
}
}
}
//风格七
/deep/ .coupon-style-seven {
.uni-scroll-view-content{
display: flex;
}
.coupon-list {
margin-right: 16rpx;
flex-shrink: 0;
width: 608rpx;
height: 160rpx;
position: relative;
padding: 10rpx 0;
image {
width: 100%;
height: 100%;
}
.coupon {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.coupon-info {
min-width: 25%;
max-width: 30%;
padding: 0;
.coupon-num {
margin: 0;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 100%;
.coupon-size {
font-size: 60rpx;
font-weight: bold;
margin-right: 4rpx;
}
}
}
.coupon-line {
border-left: 1rpx dashed #FD463E;
height: 65%;
}
.coupon-type {
.coupon-name {
display: block;
font-size: 32rpx;
font-weight: bold;
width: 280rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.coupon-least {
font-size: $font-size-tag;
color: #999;
}
}
.coupon-get {
padding: 4rpx 40rpx;
width: 130rpx;
font-size: $font-size-tag;
box-sizing: border-box;
flex-shrink: 0;
}
}
}
}
/deep/.uni-scroll-view ::-webkit-scrollbar {
/* 隐藏滚动条但依旧具备可以滚动的功能 */
display: none;
width: 0;
height: 0;
color: transparent;
background: transparent;
}
/deep/::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
color: transparent;
background: transparent;
}
</style>
<style scoped>
.coupon-style-six >>> .uni-scroll-view-content {
display: flex;
}
.coupon-all >>> .uni-scroll-view::-webkit-scrollbar {
display: none;
}
</style>