1292 lines
34 KiB
Vue
1292 lines
34 KiB
Vue
<template>
|
|
<view class="new-index-page">
|
|
<view class="header">
|
|
<view class="point">
|
|
<image src="@/static/an/point.gif" mode="" class="point-icon"></image>
|
|
<view class="point-value">{{infoDetail.coins | million}}</view>
|
|
</view>
|
|
<view class="top-up" @click="topUpCk">充值</view>
|
|
<view class="header-item" @click="handleCustomer">
|
|
<image src="@/static/new/kf.png" mode="" class="item-img"></image>
|
|
客服
|
|
</view>
|
|
<view class="header-item" @click="notice">
|
|
<image src="@/static/new/gg.png" mode="" class="item-img"></image>
|
|
公告
|
|
</view>
|
|
<view class="header-item" @click="rule">
|
|
<image src="@/static/new/gz.png" mode="" class="item-img"></image>
|
|
规则
|
|
</view>
|
|
<image src="@/static/new/header.png" mode="" class="header-bg"></image>
|
|
<!-- <view class="tops">
|
|
<TopCom></TopCom>
|
|
</view> -->
|
|
<!--
|
|
-->
|
|
</view>
|
|
<view class="main">
|
|
<floatWindow v-if="activityDetail" :consumptionTime="activityDetail.expireTime" :source="activityDetail.source" :isConsumption="activityDetail.source === 'PREFERENTIAL_DAY'" :isDiscounts="activityDetail.source === 'ROOKIE'" @click="floatCk"></floatWindow>
|
|
<!-- <view class="prize">
|
|
<view class="prize-item">
|
|
<view class="item-content">
|
|
<view class="shop-icon" style="background-image: url(@/static/mine/g.png);"></view>
|
|
</view>
|
|
<view class="item-txt">金色大狗开出了耳机 | 3分钟前</view>
|
|
</view>
|
|
</view> -->
|
|
<!-- 气泡 -->
|
|
<!-- <QpCom @click="goDetail(list[current])"></QpCom> -->
|
|
<!-- 背景线 -->
|
|
<!-- <view class="line">
|
|
<LineCom></LineCom>
|
|
</view> -->
|
|
<!-- <view class="raffle-main">
|
|
<RaffleCom></RaffleCom>
|
|
</view> -->
|
|
<view class="raffle-main">
|
|
<image src="@/static/an/raffle/9.png" mode="aspectFit" style="margin-top: -60rpx;width: 750rpx;"></image>
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<image src="@/static/new/zjt.png" mode="aspectFit" class="arrows-left" @click="changeSwiper('left')"></image>
|
|
<image src="@/static/new/yjt.png" mode="aspectFit" class="arrows-right" @click="changeSwiper('right')"></image>
|
|
|
|
<swiper class="swiper" circular :current="current" @change="swiperChange">
|
|
<swiper-item class="swiper-items" v-for="(item,index) in list" :key="index" @click="goDetail(item)">
|
|
|
|
<image :src="item.coverResource.url" mode="aspectFit" class="swiper-img" v-if="item.coverResource"></image>
|
|
<!-- <view class="swiper-img" v-if="item.coverResource"
|
|
:style="{'background-image': `url(${item.coverResource.url})`}"></view> -->
|
|
<!-- <view class="swiper-img" style="background-image: url('../../static/new/shop.png');"></view> -->
|
|
</swiper-item>
|
|
</swiper>
|
|
<view class="box-price" v-if="list.length > 0 && list[current]">
|
|
<template v-for="(item,index) in list[current].price">
|
|
<text class="price" v-if="item.type === 'SINGLE'" :key="index">{{item.settlement || '/'}}</text>
|
|
</template>
|
|
<text class="num">个/元</text>
|
|
</view>
|
|
<swiper class="footer-swiper" previous-margin="277rpx" next-margin='277rpx' circular :current="current"
|
|
@change="swiperChange">
|
|
<swiper-item class="footer-swiper-item" v-for="(item,index) in list" :key="index"
|
|
@click="swiperCk(index)">
|
|
<view class="swiper-tai">
|
|
<image src="@/static/new/box.png" mode="aspectFit"
|
|
:class="{'box-icon-active':current === index,'box-icon':current !== index}"></image>
|
|
<image src="@/static/new/select.png" mode="aspectFit" class="tai-icon-select" v-if="current === index">
|
|
</image>
|
|
<image src="@/static/new/no-select.png" mode="aspectFit" class="tai-icon" v-else></image>
|
|
<view :class="{'tai-txt-active':current === index,'tai-txt':current !== index,}">
|
|
{{item.name}}
|
|
</view>
|
|
</view>
|
|
</swiper-item>
|
|
|
|
</swiper>
|
|
|
|
<view class="footer">
|
|
<view class="more" @click="more">
|
|
<image src="@/static/an/more.gif" mode="aspectFit" class="game-icon"></image>
|
|
<view class="more-txt">更多活动</view>
|
|
</view>
|
|
<BtnCom @click="buy" ref="childComponent"></BtnCom>
|
|
<!-- <view class="btn-animation"></view> -->
|
|
</view>
|
|
</view>
|
|
<!-- 弹框 -->
|
|
<!-- <view class="dlg" v-if="adVisible && adStoreVisible == 'frist'" @click="close">
|
|
<view class="dlg-main">
|
|
<swiper class="dlg-swiper" autoplay :indicator-dots="true" circular previous-margin="120rpx"
|
|
next-margin='120rpx'>
|
|
<swiper-item v-for="(item,index) in popupList" :key="index" class="dlg-swiper-item"
|
|
@click.stop="rollingLink(item)">
|
|
<view class="dlg-swiper-img" v-if="item.coverResource" :style="{'backgroundImage':`url(${item.coverResource.url})`}">
|
|
</view>
|
|
</swiper-item>
|
|
|
|
</swiper>
|
|
<image src="@/static/order/close.png" mode="" class="dlg-close-img" @click="close"></image>
|
|
</view>
|
|
</view> -->
|
|
|
|
<popup-view v-model="adVisible" mode="bottom" border-radius="15">
|
|
<scroll-view scroll-y="true" class="ad-scroll">
|
|
<template v-for="(item,index) in popupList">
|
|
<image :key="index" v-if="item.coverResource" :src="item.coverResource.url" mode="aspectFit" class="ad-img"></image>
|
|
</template>
|
|
</scroll-view>
|
|
</popup-view>
|
|
<!-- 活动盲盒弹窗 -->
|
|
<view class="dlg" v-if="activityShow" @click="activityClose">
|
|
<view class="activity-main" @click.stop="">
|
|
<image src="@/static/new/mryh.png" mode="" class="dlg-title" v-if="activityDetail.source === 'PREFERENTIAL_DAY'"></image>
|
|
<image src="@/static/new/xsmh.png" mode="" class="dlg-title" v-if="activityDetail.source === 'ROOKIE'"></image>
|
|
<image v-if="activityDetail.coverResource" :src="activityDetail.coverResource.url" mode="aspectFit" class="activity-img" @click="goActivityDetail"></image>
|
|
<image src="@/static/new/box/hdgm.png" mode="aspectFit" class="now-buy" @click="goActivityPre"></image>
|
|
<image src="@/static/order/close.png" mode="" class="dlg-close-img" @click="activityClose"></image>
|
|
</view>
|
|
</view>
|
|
<!-- 购买弹窗 -->
|
|
<BuyCom :visible="buyVisible" :item="list[current]" @close="buyClose" @click="goBuy"></BuyCom>
|
|
|
|
<!-- 提示卡弹窗 -->
|
|
<!-- <view class="dlg" v-if="tipVisible" @click="tipVisible = false">
|
|
<view class="tip-dlg" @click.stop="">
|
|
<view class="tip-main">
|
|
<image src="@/static/new/tip/title.png" mode="" class="tip-icon"></image>
|
|
<view class="tip-txt">商品提示语</view>
|
|
<view class="tip-sub">使用提示卡后可提前获得该盲盒的商品提示语</view>
|
|
</view>
|
|
<view class="tip-btn">
|
|
<image src="@/static/new/tip/bsy.png" mode="aspectFit" class="btn-icon" @click="nonuse"></image>
|
|
<view class="btn-icon now" @click="immediate">
|
|
立即使用
|
|
</view>
|
|
</view>
|
|
<image src="@/static/order/close.png" mode="" class="close-tip" @click="tipVisible = false"></image>
|
|
</view>
|
|
</view> -->
|
|
|
|
|
|
<!-- 购买弹窗 -->
|
|
<popup-view v-model="show" mode="bottom" border-radius="15" z-index="1000">
|
|
<BuyBoxCom :detailData="list[current]" @isOk="buySuccess" :boxType="boxType" @coinDeficit="coinDeficit" @payPaid="payPaid"></BuyBoxCom>
|
|
</popup-view>
|
|
|
|
<!-- 去充值 -->
|
|
<popup-view v-model="isTopUp" mode="bottom" border-radius="15" z-index="1000">
|
|
<coinDeficitCom @close="closeTop" @sucClose="sucClose"></coinDeficitCom>
|
|
</popup-view>
|
|
<!-- 是否有未开完的奖品 -->
|
|
<NoOpenCom></NoOpenCom>
|
|
<view class="custom-toast" v-if="isTip">
|
|
<view class="toast-txt">支付成功</view>
|
|
</view>
|
|
<!-- 预加载图片 -->
|
|
<img v-for="(imgSrc, index) in boxList" :key="imgSrc" :src="imgSrc" style="display: none;" />
|
|
<img v-for="(imgSrc, index) in liHuaList" :key="imgSrc" :src="imgSrc" style="display: none;" />
|
|
<img v-for="(imgSrc, index) in gxList" :key="imgSrc" :src="imgSrc" style="display: none;" />
|
|
<img v-for="(imgSrc, index) in gradeList" :key="imgSrc" :src="imgSrc" style="display: none;" />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import QpCom from './components/qp.vue'
|
|
import BtnCom from './components/btn.vue'
|
|
import RaffleCom from './components/raffle.vue'
|
|
import LineCom from './components/line.vue'
|
|
import TopCom from './components/top.vue'
|
|
import floatWindow from '@/pages/components/floatWindow.vue'
|
|
import BuyCom from './components/buy.vue'
|
|
import TipCom from './components/tip.vue'
|
|
import BuyBoxCom from './components/buyBox.vue'
|
|
import coinDeficitCom from './components/coinDeficit.vue'
|
|
import NoOpenCom from './components/noOpen.vue'
|
|
import {
|
|
loginXc
|
|
} from '@/API/login.js'
|
|
import {
|
|
noticeTopApi,
|
|
popupAdApi,
|
|
customerApi,
|
|
userInfo,
|
|
coinPaidApi
|
|
} from '@/API/user.js'
|
|
import md5 from 'crypto-js/md5';
|
|
import Hex from 'crypto-js/enc-hex';
|
|
import {
|
|
myMixins
|
|
} from "@/mixins/mixins.js";
|
|
import {
|
|
boxesPinnedApi,
|
|
boxesTagsApi,
|
|
boxesApi,
|
|
boxActivityApi,
|
|
promptCountApi
|
|
} from '@/API/index.js'
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
list: [],
|
|
current: 0,
|
|
customer: '',
|
|
adStoreVisible: '', //是否第一次进入
|
|
infoDetail: {
|
|
point: 0,
|
|
},
|
|
adVisible: false,
|
|
activityShow: false,
|
|
activityDetail:{
|
|
coverResource:{},
|
|
price:{}
|
|
},
|
|
buyVisible:false,
|
|
tipVisible:false,
|
|
buyType:'',//几连抽
|
|
|
|
popupList:[],
|
|
optionTxt:'',
|
|
optionSign:'',
|
|
|
|
|
|
|
|
|
|
// 预加载图片
|
|
boxList: ['static/an/box/1.png', 'static/an/box/2.png', 'static/an/box/3.png', 'static/an/box/4.png',
|
|
'static/an/box/5.png', 'static/an/box/6.png', 'static/an/box/7.png', 'static/an/box/8.png',
|
|
'static/an/box/9.png', 'static/an/box/10.png', 'static/an/box/11.png', 'static/an/box/12.png',
|
|
'static/an/box/13.png', 'static/an/box/14.png', 'static/an/box/15.png', 'static/an/box/16.png',
|
|
'static/an/box/17.png', 'static/an/box/18.png', 'static/an/box/19.png', 'static/an/box/20.png',
|
|
'static/an/box/21.png', 'static/an/box/22.png', 'static/an/box/23.png', 'static/an/box/24.png',
|
|
'static/an/box/25.png', 'static/an/box/26.png', 'static/an/box/27.png', 'static/an/box/28.png',
|
|
'static/an/box/29.png', 'static/an/box/30.png', 'static/an/box/31.png', 'static/an/box/32.png',
|
|
'static/an/box/33.png', 'static/an/box/34.png', 'static/an/box/35.png', 'static/an/box/36.png',
|
|
'static/an/box/37.png', 'static/an/box/38.png', 'static/an/box/39.png', 'static/an/box/40.png',
|
|
'static/an/box/41.png', 'static/an/box/42.png', 'static/an/box/43.png', 'static/an/box/44.png',
|
|
'static/an/box/45.png', 'static/an/box/46.png', 'static/an/box/47.png', 'static/an/box/48.png',
|
|
'static/an/box/49.png', 'static/an/box/50.png', 'static/an/box/51.png', 'static/an/box/52.png',
|
|
'static/an/box/53.png', 'static/an/box/54.png', 'static/an/box/55.png', 'static/an/box/56.png',
|
|
'static/an/box/57.png', 'static/an/box/58.png', 'static/an/box/59.png', 'static/an/box/60.png',
|
|
'static/an/box/61.png', 'static/an/box/62.png', 'static/an/box/63.png', 'static/an/box/64.png',
|
|
'static/an/box/65.png', 'static/an/box/66.png', 'static/an/box/67.png', 'static/an/box/68.png',
|
|
'static/an/box/69.png', 'static/an/box/70.png', 'static/an/box/71.png', 'static/an/box/72.png'
|
|
],
|
|
liHuaList: ['static/an/lihua/1.png', 'static/an/lihua/2.png', 'static/an/lihua/3.png',
|
|
'static/an/lihua/4.png', 'static/an/lihua/5.png', 'static/an/lihua/6.png', 'static/an/lihua/7.png',
|
|
'static/an/lihua/8.png', 'static/an/lihua/9.png', 'static/an/lihua/10.png',
|
|
'static/an/lihua/11.png', 'static/an/lihua/12.png', 'static/an/lihua/13.png',
|
|
'static/an/lihua/14.png', 'static/an/lihua/15.png', 'static/an/lihua/16.png',
|
|
'static/an/lihua/17.png', 'static/an/lihua/18.png', 'static/an/lihua/19.png',
|
|
'static/an/lihua/20.png', 'static/an/lihua/21.png', 'static/an/lihua/22.png',
|
|
'static/an/lihua/23.png', 'static/an/lihua/24.png', 'static/an/lihua/25.png',
|
|
'static/an/lihua/26.png', 'static/an/lihua/27.png', 'static/an/lihua/28.png',
|
|
'static/an/lihua/29.png', 'static/an/lihua/30.png', 'static/an/lihua/31.png',
|
|
'static/an/lihua/32.png', 'static/an/lihua/33.png', 'static/an/lihua/34.png',
|
|
'static/an/lihua/35.png', 'static/an/lihua/36.png', 'static/an/lihua/37.png',
|
|
'static/an/lihua/38.png', 'static/an/lihua/39.png', 'static/an/lihua/40.png',
|
|
'static/an/lihua/41.png', 'static/an/lihua/42.png', 'static/an/lihua/43.png'
|
|
],
|
|
gxList: ['static/an/g/1.png', 'static/an/g/2.png', 'static/an/g/3.png', 'static/an/g/4.png',
|
|
'static/an/g/5.png', 'static/an/g/6.png', 'static/an/g/7.png', 'static/an/g/8.png',
|
|
'static/an/g/9.png', 'static/an/g/10.png', 'static/an/g/11.png', 'static/an/g/12.png',
|
|
'static/an/g/13.png', 'static/an/g/14.png', 'static/an/g/15.png', 'static/an/g/16.png',
|
|
'static/an/g/17.png', 'static/an/g/18.png', 'static/an/g/19.png', 'static/an/g/20.png',
|
|
'static/an/g/21.png', 'static/an/g/22.png', 'static/an/g/23.png', 'static/an/g/24.png',
|
|
'static/an/g/25.png'
|
|
],
|
|
gradeList:[
|
|
'static/result/NORMAL.png','static/result/HIDDEN.png','static/result/RARE.png','static/result/SUPREME.png','static/box/d-box.png'
|
|
],
|
|
|
|
|
|
|
|
show:false,
|
|
boxType:'',//盲盒类型
|
|
isTopUp:false,
|
|
isTip:false,
|
|
rookieTimer:null
|
|
}
|
|
},
|
|
components: {
|
|
QpCom,
|
|
BtnCom,
|
|
RaffleCom,
|
|
LineCom,
|
|
floatWindow,
|
|
TopCom,
|
|
BuyCom,
|
|
TipCom,
|
|
BuyBoxCom,
|
|
coinDeficitCom,
|
|
NoOpenCom
|
|
},
|
|
|
|
filters: {
|
|
million: function(
|
|
num) { //过万处理 let num; if(value > 9999){//大于9999显示x.xx万 num=(Math.floor(value/1000)/10) + 'W'; }else if( value < 9999 && value>-9999){ num=value }else if(value<-9999){//小于-9999显示-x.xx万
|
|
var fixedNum = 2
|
|
num = num ? Number(num) : 0
|
|
if (num >= 10000) {
|
|
var digit = num / 10000
|
|
var count = digit.toFixed(6).slice(0, -(6 - fixedNum))
|
|
count = Math.max(count)
|
|
return count + 'w'
|
|
} else {
|
|
return num
|
|
}
|
|
}
|
|
|
|
},
|
|
onLoad(option) {
|
|
this.loginParams = option
|
|
// url里有appid和userid的时候需要登录
|
|
if (option.sign) {
|
|
this.login(option)
|
|
} else if (!option.sign && option.appid && option.user_id) {
|
|
this.loginParams.userid = option.user_id
|
|
// 获取当前时间的秒级时间戳
|
|
const currentTimeInSeconds = Math.floor(Date.now() / 1000);
|
|
this.appid = option.appid
|
|
this.userid = option.user_id
|
|
this.gotoPath = option.gotoPath ? option.gotoPath : ""
|
|
this.time = currentTimeInSeconds
|
|
let md5Str = ''
|
|
if (this.gotoPath) {
|
|
md5Str =
|
|
`appid=${this.appid}&gotoPath=${this.gotoPath}&time=${this.time}&userid=${this.userid}&key=${this.appid}`
|
|
} else {
|
|
md5Str = `appid=${this.appid}&time=${this.time}&userid=${this.userid}&key=${this.appid}`
|
|
}
|
|
// md5加密
|
|
let sign = this.generate16BitMD5(md5Str)
|
|
this.optionSign = sign
|
|
this.loginParams.sign = sign
|
|
this.loginParams.time = this.time
|
|
this.login(this.loginParams)
|
|
} else {
|
|
// this.getBoxesTags()
|
|
// this.getNoticeTop()
|
|
this.getPopupAd('HOMEPAGE_CAROUSEL')
|
|
this.getPopupAd('HOMEPAGE_POPUP')
|
|
this.getBoxesPinned()
|
|
// if(this.categoriesIndex === 0){
|
|
// this.getBoxesPinned()
|
|
// }else{
|
|
// this.getBoxes()
|
|
// }
|
|
}
|
|
},
|
|
onShow() {
|
|
if (uni.getStorageSync('box-token')) {
|
|
this.getUserInfo()
|
|
this.getCustomer()
|
|
this.getBoxActivity()
|
|
this.getBoxesPinned()
|
|
}else{
|
|
this.getBoxesPinned()
|
|
}
|
|
// console.log(this.$childComponent)
|
|
// this.$refs.childComponent.startAnimation();
|
|
},
|
|
methods: {
|
|
// 新手盲盒订单支付轮训
|
|
payPaid(val){
|
|
// {boxOrderNo:res.data.boxOrderNo,no:res.data.no,boxId:this.previewData.boxId,type:1}
|
|
|
|
this.getCoinPaid(val.no,val.boxOrderNo,val.boxId)
|
|
this.rookieTimer = setInterval(() => {
|
|
this.getCoinPaid(val.no,val.boxOrderNo,val.boxId)
|
|
}, 3000);
|
|
},
|
|
|
|
// 查询新手盲盒支付订单
|
|
getCoinPaid(no,boxOrderNo,boxId) {
|
|
coinPaidApi({
|
|
no
|
|
}).then(payResult => {
|
|
if (payResult.data) {
|
|
clearInterval(this.rookieTimer); // 清除定时器
|
|
this.rookieTimer = null;
|
|
this.show = false
|
|
this.$api.msg('支付成功')
|
|
uni.navigateTo({
|
|
url: `/pages/index/draw?no=${boxOrderNo}&boxId=${boxId}&type=1`
|
|
})
|
|
// uni.redirectTo({
|
|
// url: `/pages/index/boxPaySuccess?no=${this.boxOrderNo}&boxId=${this.previewData.boxId}&name=${this.previewData.name}&type=${this.previewData.type}&sale=${this.previewData.amount.sale}`
|
|
// })
|
|
uni.hideLoading()
|
|
}
|
|
}).catch(err => {
|
|
clearInterval(this.timer); // 清除定时器
|
|
this.timer = null;
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
// 代币不足
|
|
coinDeficit(){
|
|
this.isTopUp = true
|
|
},
|
|
closeTop(){
|
|
this.isTopUp = false
|
|
this.getUserInfo()
|
|
},
|
|
sucClose(){
|
|
this.isTopUp = false
|
|
this.isTip = true
|
|
this.getUserInfo()
|
|
setTimeout(() => {
|
|
this.isTip = false
|
|
},1500)
|
|
},
|
|
// 购买成功
|
|
buySuccess(){
|
|
this.show = false
|
|
},
|
|
rule(){
|
|
console.log("aaa")
|
|
uni.navigateTo({
|
|
url:`/pages/agreement/rule`
|
|
})
|
|
},
|
|
preloadImages(type) {
|
|
if(type === 'box'){
|
|
this.boxList.forEach((imgSrc) => {
|
|
const img = new Image();
|
|
img.src = imgSrc;
|
|
});
|
|
}else if(type === 'lihua'){
|
|
this.liHuaList.forEach((imgSrc) => {
|
|
const img = new Image();
|
|
img.src = imgSrc;
|
|
});
|
|
}else if(type === 'gx'){
|
|
this.gxList.forEach((imgSrc) => {
|
|
const img = new Image();
|
|
img.src = imgSrc;
|
|
});
|
|
}else if(type === 'grade'){
|
|
|
|
this.gradeList.forEach((imgSrc) => {
|
|
const img = new Image();
|
|
img.src = imgSrc;
|
|
});
|
|
}
|
|
|
|
},
|
|
generate16BitMD5(data) {
|
|
let md5Digest = md5(data).toString(Hex);
|
|
return md5Digest.substring(8, 24); // 截取前16位
|
|
},
|
|
more(){
|
|
if(this.popupList.length === 0){
|
|
this.$api.msg('暂无活动')
|
|
return
|
|
}
|
|
this.adVisible = true
|
|
|
|
},
|
|
rollingLink(item) {
|
|
this.adVisible = false
|
|
if (item.link) {
|
|
if (item.link.type === 'INSIDE') {
|
|
uni.navigateTo({
|
|
url: `${item.link.url}`
|
|
})
|
|
} else {
|
|
window.open(item.link.url)
|
|
// uni.navigateTo({
|
|
// url: `/pages/webView/index?url=${item.link}`
|
|
// })
|
|
}
|
|
|
|
}
|
|
},
|
|
// 获取活动盲盒详情
|
|
getBoxActivity(){
|
|
boxActivityApi().then(res => {
|
|
if(res.code === 200){
|
|
this.activityDetail = res.data
|
|
if(this.activityDetail){
|
|
if (!uni.getStorageSync('activityShow')) {
|
|
this.activityShow = true
|
|
// 设置标记,表示已经弹出过
|
|
localStorage.setItem('activityShow', 'true');
|
|
}
|
|
}
|
|
}else{
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
goDetail(item){
|
|
uni.navigateTo({
|
|
url: `/pages/index/boxDetail?id=${item.id}`
|
|
})
|
|
},
|
|
goActivityDetail(){
|
|
uni.navigateTo({
|
|
url: `/pages/index/boxDetail?type=${this.activityDetail.source}`
|
|
})
|
|
},
|
|
// 活动盲盒订单预览
|
|
goActivityPre(){
|
|
this.boxType = this.activityDetail.source
|
|
// console.log(this.activityDetail)
|
|
this.show = true
|
|
this.activityClose()
|
|
},
|
|
activityClose() {
|
|
uni.setStorageSync('ad','behind')
|
|
this.activityShow = false
|
|
},
|
|
close() {
|
|
uni.setStorageSync('ad', 'behind')
|
|
this.adVisible = false
|
|
},
|
|
login(data) {
|
|
loginXc(data).then(res => {
|
|
if (res.code === 200) {
|
|
try {
|
|
this.adStoreVisible = uni.getStorageSync('ad') ? uni.getStorageSync('ad') : 'frist'
|
|
} catch (e) {
|
|
//TODO handle the exception
|
|
this.adStoreVisible = 'frist'
|
|
}
|
|
// this.getBoxesTags()
|
|
// this.getNoticeTop()
|
|
this.getPopupAd('HOMEPAGE_CAROUSEL')
|
|
this.getPopupAd('HOMEPAGE_POPUP')
|
|
this.getBoxesPinned()
|
|
} else {
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
// 获取用户信息
|
|
getUserInfo() {
|
|
userInfo().then(res => {
|
|
if (res.code === 200) {
|
|
this.infoDetail = res.data
|
|
} else if (res.code == 400) {
|
|
uni.removeStorageSync('userInfo')
|
|
uni.removeStorageSync('info')
|
|
this.$api.msg(res.message)
|
|
} else {
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
getCustomer() {
|
|
customerApi().then(res => {
|
|
if (res.code === 200) {
|
|
this.customer = res.data
|
|
} else {
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
handleCustomer() {
|
|
window.open(this.customer)
|
|
},
|
|
topUpCk() {
|
|
uni.navigateTo({
|
|
url: `/pages/mine/topUp`
|
|
})
|
|
},
|
|
notice() {
|
|
uni.navigateTo({
|
|
url: `/pages/mine/notice`
|
|
})
|
|
},
|
|
// 获取广告弹窗/轮播
|
|
getPopupAd(type) {
|
|
// HOMEPAGE_CAROUSEL 轮播
|
|
// HOMEPAGE_POPUP 弹窗
|
|
popupAdApi({
|
|
type
|
|
}).then(res => {
|
|
if (res.code === 200) {
|
|
if (type === 'HOMEPAGE_CAROUSEL') {
|
|
this.bannerTopList = res.data
|
|
}
|
|
if (type === 'HOMEPAGE_POPUP') {
|
|
this.popupList = res.data
|
|
if (this.popupList.length > 0) {
|
|
// this.adVisible = true
|
|
}
|
|
}
|
|
} else {
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
// 获取首页盲盒
|
|
getBoxesPinned() {
|
|
let data = {
|
|
name: this.search
|
|
}
|
|
boxesPinnedApi(data).then(res => {
|
|
if (res.code === 200) {
|
|
this.list = res.data
|
|
} else {
|
|
this.$api.msg(res.message)
|
|
}
|
|
})
|
|
},
|
|
swiperChange(val) {
|
|
this.current = val.detail.current
|
|
},
|
|
swiperCk(index) {
|
|
this.current = index
|
|
},
|
|
changeSwiper(type) {
|
|
if (type === 'right') {
|
|
if (this.current === this.list.length - 1) {
|
|
this.current = 0
|
|
} else {
|
|
this.current += 1
|
|
}
|
|
} else {
|
|
if (this.current === 0) {
|
|
this.current = this.list.length - 1
|
|
} else {
|
|
this.current -= 1
|
|
}
|
|
}
|
|
},
|
|
|
|
// 不使用提示卡
|
|
nonuse(){
|
|
this.tipVisible = false
|
|
uni.navigateTo({
|
|
url:`/pages/index/boxOrderConfirm?boxId=${this.list[this.current].id}&type=${this.buyType}`
|
|
})
|
|
},
|
|
// 使用提示卡
|
|
immediate(){
|
|
|
|
},
|
|
// 打开购买组件
|
|
buy(){
|
|
this.boxType = 'buy'
|
|
this.show = true
|
|
},
|
|
// 关闭购买弹窗组件
|
|
buyClose(){
|
|
this.buyVisible = false
|
|
},
|
|
floatCk(type){
|
|
this.boxType = type
|
|
console.log(this.boxType)
|
|
if(type){
|
|
// 每日优惠
|
|
if(this.activityDetail && this.activityDetail.source){
|
|
this.activityShow = true
|
|
}
|
|
}
|
|
},
|
|
// 购买组件 购买
|
|
goBuy(type){
|
|
this.buyVisible = false
|
|
}
|
|
// goBuy(type){
|
|
// this.buyType = type
|
|
// // 用提示卡时打开提示卡组件
|
|
// promptCountApi().then(res => {
|
|
// if(res.data === '0'){
|
|
// uni.navigateTo({
|
|
// url:`/pages/index/boxOrderConfirm?boxId=${this.list[this.current].id}&type=${type}`
|
|
// })
|
|
// }else{
|
|
// this.tipVisible = true
|
|
// }
|
|
// })
|
|
|
|
// },
|
|
|
|
},
|
|
onHide() {
|
|
// console.log("aaa")
|
|
// 在页面离开时销毁子组件中的定时器
|
|
this.btnTimer = Math.floor(Math.random() * (1 - 100000 + 1)) + 100000
|
|
clearInterval(this.btnTimer)
|
|
// this.$refs.childComponent && this.$refs.childComponent.$destroy();
|
|
},
|
|
onUnload() {
|
|
// 在页面离开时清除定时器
|
|
clearInterval(this.rookieTimer)
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
page {}
|
|
|
|
.new-index-page {
|
|
width: 100%;
|
|
height: calc(100vh - 50px);
|
|
// height: calc(100vh - 82px);
|
|
overflow: hidden;
|
|
// height: 1282rpx;
|
|
// height: 1300rpx;
|
|
background-image: url('@/static/new/bg.png');
|
|
background-repeat: no-repeat;
|
|
// border: 1px solid #000;
|
|
background-size: 100%;
|
|
|
|
// border: 1px solid red;
|
|
|
|
.header {
|
|
height: 200rpx;
|
|
// background-image: url('@/static/new/header.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
display: flex;
|
|
padding-top: 12rpx;
|
|
z-index: 2;
|
|
position: relative;
|
|
|
|
.point {
|
|
width: 202rpx;
|
|
height: 96rpx;
|
|
font-size: 36rpx;
|
|
color: #3E688D;
|
|
background-image: url('@/static/new/point-bg.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
font-family: YouSheBiaoTiHei;
|
|
margin-left: 24rpx;
|
|
display: flex;
|
|
padding-top: 12rpx;
|
|
// align-items: center;
|
|
padding-left: 16rpx;
|
|
z-index: 3;
|
|
|
|
.point-icon {
|
|
width: 56rpx;
|
|
height: 56rpx;
|
|
}
|
|
|
|
.point-value {
|
|
padding-top: 6rpx;
|
|
}
|
|
}
|
|
|
|
.top-up {
|
|
width: 116rpx;
|
|
height: 96rpx;
|
|
font-size: 36rpx;
|
|
background-image: url('@/static/new/topup-bg.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
font-family: YouSheBiaoTiHei;
|
|
color: #3E688D;
|
|
padding-top: 18rpx;
|
|
text-align: center;
|
|
margin-right: 40rpx;
|
|
z-index: 3;
|
|
}
|
|
|
|
.header-item {
|
|
display: flex;
|
|
align-items: center;
|
|
font-weight: bold;
|
|
font-size: 24rpx;
|
|
color: #385E80;
|
|
height: 35rpx;
|
|
margin-top: 16rpx;
|
|
margin-right: 24rpx;
|
|
z-index: 3;
|
|
|
|
.item-img {
|
|
margin-right: 8rpx;
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
}
|
|
}
|
|
|
|
|
|
.tops{
|
|
position: absolute;
|
|
top: -80rpx;
|
|
left: 0;
|
|
z-index: 1;
|
|
}
|
|
.header-bg{
|
|
width: 100%;
|
|
height: 200rpx;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
z-index: 2;
|
|
}
|
|
}
|
|
.main {
|
|
position: relative;
|
|
z-index: 5;
|
|
padding-top: 160rpx;
|
|
.prize {
|
|
position: absolute;
|
|
top: -40rpx;
|
|
left: 32rpx;
|
|
|
|
.prize-item {
|
|
width: 480rpx;
|
|
height: 56rpx;
|
|
background: linear-gradient(90deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
|
|
border-radius: 28rpx 0px 0px 28rpx;
|
|
opacity: 0.5;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0rpx 6rpx;
|
|
|
|
.item-content {
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background-color: #fff;
|
|
|
|
.shop-icon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
background-position: 50% 50%;
|
|
}
|
|
}
|
|
|
|
.item-txt {
|
|
margin-left: 16rpx;
|
|
width: 320rpx;
|
|
font-size: 24rpx;
|
|
color: #FFFFFF;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
}
|
|
}
|
|
|
|
.img {
|
|
position: absolute;
|
|
top: -40rpx;
|
|
width: 750rpx;
|
|
height: 520rpx;
|
|
}
|
|
|
|
.line {
|
|
width: 100%;
|
|
height: 500rpx;
|
|
position: absolute;
|
|
top: -60rpx;
|
|
left: 0;
|
|
}
|
|
|
|
.raffle-main {
|
|
position: absolute;
|
|
top: 400rpx;
|
|
}
|
|
|
|
.arrows-left {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
position: absolute;
|
|
top: 360rpx;
|
|
left: 24rpx;
|
|
z-index: 6;
|
|
}
|
|
|
|
.arrows-right {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
position: absolute;
|
|
top: 360rpx;
|
|
right: 24rpx;
|
|
z-index: 6;
|
|
}
|
|
|
|
.swiper {
|
|
z-index: 3;
|
|
height: 360rpx;
|
|
.swiper-items {
|
|
width: 462rpx;
|
|
height: 460rpx;
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
|
|
.swiper-img {
|
|
width: 462rpx;
|
|
height: 360rpx;
|
|
// background-size: 100%;
|
|
// background-position: 50% 50%;
|
|
// background-repeat: no-repeat;
|
|
}
|
|
}
|
|
}
|
|
|
|
.box-price{
|
|
background-image: url('@/static/new/box/price.png');
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
width: 320rpx;
|
|
height: 112rpx;
|
|
z-index: 41;
|
|
position: absolute;
|
|
// bottom: 0;
|
|
left: 216rpx;
|
|
top:540rpx;
|
|
text-align: center;
|
|
color: #1F6099;
|
|
font-family: YouSheBiaoTiHei;
|
|
padding-top: 50rpx;
|
|
.price{
|
|
font-size: 40rpx;
|
|
}
|
|
.num{
|
|
font-size: 32rpx;
|
|
}
|
|
}
|
|
|
|
.footer-swiper {
|
|
z-index: 4;
|
|
margin-top: 140rpx;
|
|
height: 240rpx;
|
|
|
|
.footer-swiper-item {
|
|
font-size: 28rpx;
|
|
color: #335C80;
|
|
font-family: YouSheBiaoTiHei;
|
|
|
|
.swiper-tai {
|
|
// padding-top: 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
|
|
.box-icon {
|
|
width: 152rpx;
|
|
height: 120rpx;
|
|
z-index: 4;
|
|
}
|
|
|
|
.box-icon-active {
|
|
width: 176rpx;
|
|
height: 140rpx;
|
|
z-index: 4;
|
|
}
|
|
|
|
.tai-icon-select {
|
|
width: 240rpx;
|
|
height: 226rpx;
|
|
margin-top: -140rpx;
|
|
z-index: 3;
|
|
}
|
|
|
|
.tai-icon {
|
|
width: 208rpx;
|
|
height: 220rpx;
|
|
margin-top: -133rpx;
|
|
z-index: 3;
|
|
}
|
|
|
|
.tai-txt {
|
|
width: 208rpx;
|
|
height: 120rpx;
|
|
font-size: 28rpx;
|
|
color: #335C80;
|
|
background-image: url('@/static/new/no.png');
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
margin-top: -126rpx;
|
|
z-index: 3;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tai-txt-active {
|
|
width: 240rpx;
|
|
height: 144rpx;
|
|
font-size: 28rpx;
|
|
color: #335C80;
|
|
background-image: url('@/static/new/y.png');
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
margin-top: -143rpx;
|
|
z-index: 3;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
.footer-swiper-img {
|
|
width: 150rpx;
|
|
height: 116rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.footer {
|
|
padding: 0rpx 0rpx 0 40rpx;
|
|
margin-top: -70rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.more {
|
|
// display: inline-block;
|
|
font-size: 28rpx;
|
|
color: #FFFFFF;
|
|
position: relative;
|
|
|
|
.game-icon {
|
|
width: 122rpx;
|
|
height: 170rpx;
|
|
}
|
|
|
|
.more-txt {
|
|
width: 132rpx;
|
|
text-align: center;
|
|
margin-top: -20rpx;
|
|
// position: absolute;
|
|
// bottom: 10rpx;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
.dlg {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100vh;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
z-index: 9999;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.dlg-main {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
|
|
.dlg-swiper {
|
|
// width: 402rpx;
|
|
width: 750rpx;
|
|
height: 580rpx;
|
|
border-radius: 20rpx;
|
|
|
|
.dlg-swiper-item {
|
|
width: 468rpx;
|
|
height: 580rpx;
|
|
border-radius: 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.dlg-swiper-img {
|
|
width: 468rpx;
|
|
height: 580rpx;
|
|
border-radius: 20rpx;
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
background-position: center;
|
|
transform: scale(1);
|
|
transition: transform 0.3s ease-in-out 0s;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
.dlg-close-img {
|
|
margin-top: 23rpx;
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
z-index: 9999;
|
|
}
|
|
}
|
|
.activity-main{
|
|
flex-direction: column;
|
|
width: 480rpx;
|
|
height: 608rpx;
|
|
background-image: url('@/static/new/box/hdtc.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
.dlg-title{
|
|
display: block;
|
|
margin: 0 auto;
|
|
width: 148rpx;
|
|
height: 52rpx;
|
|
}
|
|
.activity-img{
|
|
width: 448rpx;
|
|
height: 440rpx;
|
|
border-radius: 20rpx;
|
|
display: block;
|
|
margin: 20rpx auto;
|
|
z-index: 2;
|
|
}
|
|
.now-buy{
|
|
width: 348rpx;
|
|
// height: 120rpx;
|
|
display: block;
|
|
margin: -120rpx auto 0 auto;
|
|
z-index: 1;
|
|
}
|
|
.dlg-close-img {
|
|
display: block;
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
z-index: 9999;
|
|
margin: -120rpx auto 0 auto;
|
|
}
|
|
}
|
|
.buy-main{
|
|
width: 480rpx;
|
|
height: 640rpx;
|
|
background-image: url('@/static/new/index/bg.png');
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
.buy-header{
|
|
padding-top: 40rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
.header-icon{
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
}
|
|
.header-txt{
|
|
font-weight: 800;
|
|
font-size: 32rpx;
|
|
color: #143D66;
|
|
margin: 0 16rpx;
|
|
}
|
|
}
|
|
.dlg-tip{
|
|
text-align: center;
|
|
margin-top: 8rpx;
|
|
font-size: 24rpx;
|
|
color: #528FCC;
|
|
}
|
|
.btn-main{
|
|
height: 480rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
.btn-buy{
|
|
width: 400rpx;
|
|
height: 188rpx;
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
// display: flex;
|
|
// justify-content: center;
|
|
padding-left: 96rpx;
|
|
padding-top: 52rpx;
|
|
.buy-title{
|
|
width: 208rpx;
|
|
height: 72rpx;
|
|
}
|
|
}
|
|
.one{
|
|
background-image: url('@/static/new/index/1.png');
|
|
}
|
|
.three{
|
|
background-image: url('@/static/new/index/3.png');
|
|
}
|
|
.five{
|
|
background-image: url('@/static/new/index/5.png');
|
|
}
|
|
}
|
|
|
|
}
|
|
.close-buy{
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
display: block;
|
|
margin: 129rpx auto 0 auto;
|
|
}
|
|
.tip-dlg{
|
|
.tip-main{
|
|
width: 480rpx;
|
|
height: 648rpx;
|
|
background-image: url('@/static/new/tip/card.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
.tip-icon{
|
|
width: 112rpx;
|
|
height: 52rpx;
|
|
display: block;
|
|
margin: 0 auto;
|
|
}
|
|
.tip-txt{
|
|
padding-top: 364rpx;
|
|
font-weight: 800;
|
|
font-size: 40rpx;
|
|
color: #143D66;
|
|
text-align: center;
|
|
}
|
|
.tip-sub{
|
|
margin: 0 auto;
|
|
margin-top: 24rpx;
|
|
width: 352rpx;
|
|
font-size: 24rpx;
|
|
color: #528FCC;
|
|
}
|
|
}
|
|
.tip-btn{
|
|
margin-top: 64rpx;
|
|
width: 480rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
.btn-icon{
|
|
width: 228rpx;
|
|
height: 96rpx;
|
|
font-size: 44rpx;
|
|
color: rgba(255,255,255,0.9);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-family: YouSheBiaoTiHei;
|
|
}
|
|
.now{
|
|
background-image: url('@/static/new/tip/btn.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
}
|
|
.close-tip{
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
display: block;
|
|
margin: 84rpx auto 0 auto;
|
|
}
|
|
}
|
|
}
|
|
.ad-scroll{
|
|
height: 752rpx;
|
|
padding: 44rpx 32rpx 0 32rpx;
|
|
.ad-img{
|
|
width: 686rpx;
|
|
height: 202rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
}
|
|
|
|
.custom-toast{
|
|
position: fixed;
|
|
width: 100%;
|
|
height: 100vh;
|
|
top: 0;
|
|
left: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 999999;
|
|
.toast-txt{
|
|
z-index: 999999;
|
|
border-radius: 6rpx;
|
|
padding: 6rpx 26rpx;
|
|
background-color: rgba(0,0,0,0.8);
|
|
color: #fff;
|
|
font-size: 28rpx;
|
|
}
|
|
}
|
|
}
|
|
</style> |