web-retail-h5/components/newGift.vue

363 lines
7.8 KiB
Vue

<!--
* @Descripttion:
* @version:
* @Author: 王三华
* @Date: 2023-08-16 19:05:40
-->
<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-08-08 10:42:29
-->
<template>
<u-popup :show="newVip"
class="notice"
width="70%"
@close="newVip = false"
closeable
round="10"
mode="center">
<div class="kuang">
<!-- <i class="el-icon-close cha"
@click="close"></i> -->
<!-- <el-carousel @change="carouselHand"
:autoplay='false'
indicator-position="outside"
:height='bannerHeight + "px"'
class="switerAll"
arrow='never'
ref='swiper'
style="width:548px;margin:0 auto">
<div class="left_arr"
@click="arrowClick('prev')">
<img src="@/static/images/arrowl.png"
alt="">
</div>
<div class="right_arr"
@click="arrowClick('next')">
<img src="@/static/images/arrowr.png"
alt="">
</div>
<el-carousel-item v-for="(item,index) in cGiftList"
:key="index">
<div class="kuang_t">{{item.plan}}</div>
<div class="n_kuang">
<div class="n_kuang_t">
<div v-if="cGiftList.length>1"
class="tit">{{item.actName}}</div>
<div v-for="(itm,indx) in item.pgpList"
:key="indx"
class="bao">
<img class="img_i"
:src="itm.cover"
alt="">
<div class="bao_r">
<div class="bao_rl">
<div>{{itm.productName}}</div>
<div class="num">X{{itm.quantity}}</div>
</div>
<div class="price">¥{{itm.price}}</div>
</div>
</div>
</div>
</div>
</el-carousel-item>
</el-carousel> -->
<view class="nei">
<swiper class="swiper-box"
:indicator-dots="true"
:current="swiperDotIndex"
@change="getIndex">
<swiper-item v-for="(item, index) in cGiftList"
:key="index">
<div class="kuang_t">{{item.plan}}</div>
<div class="n_kuang">
<div class="n_kuang_t">
<div v-if="cGiftList.length>1"
class="tit">{{item.actName}}</div>
<div v-for="(itm,indx) in item.pgpList"
:key="indx"
class="bao">
<img class="img_i"
:src="itm.cover"
alt="">
<div class="bao_r">
<div class="bao_rl">
<div>{{itm.productName}}</div>
<div class="num">X{{itm.quantity}}</div>
</div>
<div class="price">¥{{itm.price}}</div>
</div>
</div>
</div>
</div>
</swiper-item>
</swiper>
<div class="btns"
@click="changeGift">{{ $t('w_0211') }}</div>
</view>
</div>
</u-popup>
<!-- </van-overlay> -->
</template>
<script>
import * as act from '@/config/bonus.js'
export default {
name: 'Title',
props: {
// isAgree: {
// type: Boolean,
// default: false,
// },
},
data() {
return {
current: 0,
mode: 'default',
dotsStyles: {},
swiperDotIndex: 0,
newVip: false,
toChange: false,
cGiftList: [],
isChange: '',
bannerIndex: 0,
bannerHeight: 0,
}
},
mounted() {},
methods: {
carouselHand(index) {
this.bannerIndex = index
},
getIndex(e) {
this.bannerIndex = e.detail.current
},
getGiftList(val) {
act
.getGiftPack({
pkBaseId: val,
})
.then((res) => {
if (res.code == 200) {
if (res.data != undefined) {
this.newVip = true
this.cGiftList = res.data
} else {
this.newVip = false
}
}
})
},
close() {
this.newVip = false
},
changeGift() {
let rows = this.cGiftList[this.bannerIndex]
// this.$router.push({
// path: '/newGiftPay',
// query: {
// data: JSON.stringify(rows)
// },
// })
uni.navigateTo({
url: '/pages/other/newGiftPay?data=' + JSON.stringify(rows),
})
},
},
}
</script>
<style lang="scss" scoped>
.notice ::v-deep .u-popup__content {
width: 690rpx;
background: none;
}
.kuang {
width: 100%;
// margin: 0 auto;
// padding: 0 20rpx;
// background: #fff;
background: url('~@/static/images/nGift.png') no-repeat;
background-size: 100% 100%;
height: 500px;
// text-align: center;
// margin-top: 150px;
// box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.5);
border-radius: 20px;
position: relative;
.cha {
position: absolute;
top: 20px;
right: 20px;
font-size: 25px;
color: #fff;
}
}
.swiper-box {
height: 400px;
}
.nei {
padding: 0 20rpx;
}
.kuang_t {
text-align: center;
font-weight: 600;
color: #fff;
font-size: 34px;
margin: 20px 0;
// padding-top: 40px;
}
.n_kuang {
border-radius: 8px;
border: 2px dashed #ccc;
// height: 330px;
// width: 388px;
margin: 0 auto;
padding: 0 15px;
display: flex;
flex-direction: column;
margin-bottom: 10px;
.n_kuang_t {
flex: 1;
overflow: auto;
overflow-x: hidden;
// ::-webkit-scrollbar {
// width: 0 !important;
// }
// ::-webkit-scrollbar {
// width: 0 !important;
// height: 0;
// }
}
.tit {
font-size: 24px;
// margin: 12px 0;
margin-top: 12px;
font-weight: 600;
color: #fff;
}
}
.btns {
background: #ffb95c;
border-radius: 10px;
padding: 10px;
// width: 388px;
margin: 0 auto;
font-size: 16px;
font-weight: 600;
color: #ffffff;
text-align: center;
cursor: pointer;
margin-top: 20px;
// display: none;
}
.bao {
margin-top: 12px;
display: flex;
background: rgba(207, 213, 250, 0.4);
border-radius: 8px;
margin-bottom: 10px;
align-items: center;
padding: 12px;
font-size: 12px;
font-weight: 600;
color: #333333;
.bao_r {
display: flex;
flex: 1;
align-items: center;
justify-content: space-between;
.bao_rl {
display: flex;
flex-direction: column;
.num {
font-size: 12px;
margin-top: 10px;
font-weight: 400;
color: #333333;
}
}
.price {
font-size: 16px;
font-weight: 600;
color: #f64e49;
}
}
}
.img_i {
width: 44px;
height: 44px;
margin-right: 10px;
}
* {
::-webkit-scrollbar {
/*隐藏滚轮*/
display: none;
}
}
.zhuanpan1 {
::v-deep .el-dialog {
background: transparent !important;
box-shadow: none;
}
}
.switerAll {
.left_arr {
position: absolute;
top: 55%;
left: 20px;
z-index: 10;
img {
width: 44px;
height: 44px;
}
}
.right_arr {
position: absolute;
top: 55%;
right: 20px;
z-index: 10;
img {
width: 44px;
height: 44px;
}
}
}
</style>
<style>
.kuang .el-icon-arrow-left {
font-size: 18px;
font-weight: 600;
}
.kuang .el-icon-arrow-right {
font-size: 18px;
font-weight: 600;
}
.kuang .el-carousel__arrow {
top: 60%;
}
.kuang .el-carousel__button {
width: 10px;
height: 10px;
background: #fff;
border-radius: 50%;
opacity: none;
}
.kuang .el-carousel__indicator.is-active button {
width: 50px;
border-radius: 10px;
}
.kuang .el-carousel__indicators--outside .el-carousel__indicator:hover button {
opacity: 1;
}
::v-deep .uni-swiper-dots-horizontal {
bottom: 0px;
}
</style>