lilishop-uniapp/pages/product/product/promotion/-promotion.vue

144 lines
3.3 KiB
Vue

<template>
<view>
<view
v-for="(promotionItem, promotionIndex) in promotion"
:key="promotionIndex"
class="promotion_row"
@click="shutMask(1)"
>
<view v-if="res != null" v-for="(item, index) in Object.keys(res)" :key="index">
<div
class="promotion_col"
v-if="
item.split('-')[0] == promotionItem.value &&
item.split('-')[0] == 'FULL_DISCOUNT'
"
>
<!-- 满减,折扣 -->
<div class="flex">
<view class="deg_tag">{{ promotionItem.title }}</view>
<div class="text proText">满{{ res[item].fullMoney }}元,立享优惠</div>
</div>
</div>
<div
class="promotion_col"
v-if="
item.split('-')[0] == promotionItem.value && item.split('-')[0] == 'PINTUAN'
"
>
<!-- 拼团 -->
<div class="flex">
<view class="deg_tag">{{ promotionItem.title }}</view>
<div class="text proText">{{ res[item].promotionName }}</div>
</div>
</div>
<div
class="promotion_col"
v-if="
item.split('-')[0] == promotionItem.value && item.split('-')[0] == 'SECKILL'
"
>
<!-- 限时抢购 -->
<div class="flex">
<view class="deg_tag">{{ promotionItem.title }}</view>
<div class="text proText">{{ res[item].promotionName }}</div>
</div>
</div>
</view>
<view class="promotion_row" style="display: inline">
<view>
<div class="promotion_col coupon" v-if="couponList && promotionIndex == 1">
<!-- 优惠券 -->
<div>
<view class="deg_tag">优惠券</view>
</div>
</div>
</view>
</view>
</view>
<view v-if="this.res != null && Object.keys(res).length == 0"> </view>
</view>
</template>
<script>
import promotion from "./promotion_type";
export default {
data() {
return {
promotion,
couponList: "",
};
},
props: {
// 父组件传递回来的数据
res: {
type: null,
default: {},
},
},
watch: {
res: {
handler() {
if (this.res && this.res.length != 0 && this.res != null) {
Object.keys(this.res).forEach((item) => {
let key = item.split("-")[0];
this.res[item].__key = key;
if (item.split("-")[0] == "COUPON") {
this.couponList = "COUPON";
}
});
}
},
immediate: true,
},
},
mounted() {},
methods: {
// 此方法条用父级方法
shutMask(val) {
this.$emit("shutMasks", val);
},
},
};
</script>
<style lang="scss" scoped>
.deg_tag {
color: $price-color;
padding: 0 4rpx;
border: 2rpx solid $price-color;
font-size: 22rpx;
}
.promotion_col {
/**/
// margin: 0 0 17rpx 0;
padding: 0 !important;
margin: 10rpx 0;
}
.promotion_row {
display: flex;
align-items: center;
}
.flex {
display: flex;
}
.proText {
font-size: 26rpx;
font-family: PingFang SC, PingFang SC-Regular;
font-weight: 400;
text-align: left;
color: #333333;
margin-left: 20rpx;
}
/deep/ .u-mode-light-error {
border: none;
}
</style>