352 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			352 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
| 
 | |
| <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">{{ '立即领取' }}</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> |