419 lines
11 KiB
Vue
419 lines
11 KiB
Vue
<template>
|
||
<view v-if="istrue" class="">
|
||
<view class="t1 pos">
|
||
<view class="f-center f32" style="color: #FFF;margin-top: 190rpx;letter-spacing: 18rpx;">最高可领500元立减金</view>
|
||
<view class="abs flex_column flex_items" style="right: 10rpx;top: 120rpx;">
|
||
<image @click="gomy" :src="jpsl" style="width: 50rpx;height: 64rpx;" mode=""></image>
|
||
<image @click="tk('guize')" :src="gz" style="width: 50rpx;height: 64rpx;margin-top:20rpx;" mode="">
|
||
</image>
|
||
</view>
|
||
<view class="flex_items flex_column" style="margin-top:240rpx;">
|
||
<view v-if="zjtitle==''" class="f26" style="color: #FA483D;">限时领取微信立减金,翻牌享惊喜</view>
|
||
<view v-else class="f26" style="color: #333;">
|
||
恭喜您获得{{zjtitle}},<text class="bold" @click="createState()" style="color: #FA483D;">点此再次领取</text>
|
||
</view>
|
||
<view class="flex_items flex_center">
|
||
<view v-if="cardStateArray.length!=0" class="flex_warp flex_items ml10 drawBox" style="">
|
||
<view v-for="(item,index) in cardStateArray" :key="index"
|
||
:class="[index!=2&&index!=5?'mr15':'','mt10','draw-card']" @click="flip(index)">
|
||
<view :class="[item.state?'front_reverse':'','front']">
|
||
<image :src="imgs[index].src" style="width:145rpx;height:216rpx;" mode="aspectFit">
|
||
</image>
|
||
</view>
|
||
<view :class="[item.state&&index==curindex?'back_reverse':'','back','pos']">
|
||
<view class="f-center f22 abs"
|
||
style="color:#FFF2A3;width: 100%;left: 0;top:12rpx;z-index: 1;">
|
||
{{item.name}}
|
||
</view>
|
||
<image :src="zj" style="width:145rpx;height:216rpx;" mode="aspectFit"></image>
|
||
<view @click="godui" class="abs"
|
||
style="width: 100%;height: 40rpx;background:none;bottom: 15rpx;"></view>
|
||
</view>
|
||
<view :class="[item.state&&index!=curindex?'back_reverse':'','back','pos']">
|
||
<view class="f-center f22 abs"
|
||
style="color:#818181;width: 100%;left: 0;top:12rpx;z-index: 1;">
|
||
{{item.name}}
|
||
</view>
|
||
<image :src="wjz" style="width:145rpx;height:216rpx;" mode="aspectFit"></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="f30 count" style="color: #FFF2A3;">
|
||
<text>剩余<text class="" style="color: #fff;">{{receive_num}}</text>次机会</text>
|
||
</view>
|
||
</view>
|
||
<view class="flex_items flex_center pos" style="margin-top: -106rpx;z-index: 1;overflow: hidden;">
|
||
<view class="t2 flex_column flex_items" style="">
|
||
<image :src="jptitle" style="width: 439rpx;height: 25rpx;margin-top: 166rpx;margin-bottom: 20rpx;" mode=""></image>
|
||
<view class="flex_start flex_items mt10" style="width: calc(100% - 180rpx);">
|
||
<view style="width:460rpx;">
|
||
<u-line-progress :percentage="process_rate" inactiveColor="#FF5937" activeColor="#FFE7B8">
|
||
<view class="u-percentage-slot"></view>
|
||
</u-line-progress>
|
||
</view>
|
||
<view class="ml30 f26" style="color: #FF5937;width: 204rpx;">已领:{{process_rate}}%</view>
|
||
</view>
|
||
<view class="flex_items flex_center" style="width: 100%;">
|
||
<view v-if="prizes.length!=0" class="flex_warp flex_items ml20" style="width: calc(100% - 80rpx);">
|
||
<view v-for="(item,index) in prizes" :key="index"
|
||
:class="[index!=2&&index!=5?'mr50':'','mt30']">
|
||
<view class="jcb pos">
|
||
<view class="abs f-center f22" style="width: 100%;left: 0;bottom:15rpx;color: #FFE0A8;">
|
||
{{item.name}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-else class="p30 f26 f-center" style="color: #9a9a9a;margin-top:50rpx;">--暂无数据--
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="flex_items flex_center">
|
||
<view class="t4 flex_items flex_column" style="">
|
||
<view class="f28" style="color: #8E4D41;width:calc(100% - 130rpx);margin-top: 80rpx;">
|
||
<view>活动期间:</view>
|
||
<view class="mt20">1.单击右上角奖品按钮,进入奖品列表页面</view>
|
||
<view class="mt20">2.选择奖品,点击去兑换</view>
|
||
<view class="mt20">3.进入兑换页,点击立即兑换</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="flex_items flex_center">
|
||
<view class="t3 flex_items flex_column" style="">
|
||
<view class="f28" style="color: #8E4D41;width:calc(100% - 130rpx);margin-top: 80rpx;">
|
||
<view>活动期间:</view>
|
||
<view class="mt20">1.成功签约积存金有机会获得1次领取机会</view>
|
||
<view class="mt20">2.成功签约柜台债有机会获得1次领取机会</view>
|
||
<view class="mt20">3.成功签约结构性存款有机会获得2次领取机会</view>
|
||
<view class="mt20">4.成功买入1笔2000元面值(含)以上二级流通柜台债,有机会获得1次领取机会</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<overlay v-if="isshow" :istype="istype" :isshow="isshow" :title="zjtitle" :link="link" @backshow="backshow">
|
||
</overlay>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import overlay from "@/components/overlay.vue"
|
||
import {Debounce} from "@/util/common.js"
|
||
export default {
|
||
data() {
|
||
return {
|
||
t1: require('@/static/lhj.png'),
|
||
zj: require('@/static/zj.png'),
|
||
wjz: require('@/static/wzj.png'),
|
||
jptitle: require('@/static/jptitle.png'),
|
||
hj: require('@/static/hj.png'),
|
||
jpsl: require('@/static/jpsl.png'),
|
||
gz: require('@/static/gz.png'),
|
||
out: require('@/static/out.png'),
|
||
lu: require('@/static/gtz.png'),
|
||
imgs: [{
|
||
src: require('@/static/gtz.png'),
|
||
}, {
|
||
src: require('@/static/jcj.png'),
|
||
}, {
|
||
src: require('@/static/xxy.png'),
|
||
}, {
|
||
src: require('@/static/jcj.png'),
|
||
}, {
|
||
src: require('@/static/xxy.png'),
|
||
}, {
|
||
src: require('@/static/gtz.png'),
|
||
}, {
|
||
src: require('@/static/jcj.png'),
|
||
}, ],
|
||
cardStateArray: [],
|
||
prizes: [],
|
||
istype: 'login',
|
||
isshow: true,
|
||
istrue: true,
|
||
receive_num: null,
|
||
ids: "",
|
||
process_rate: 0,
|
||
zjtitle: "",
|
||
link: "",
|
||
zjlink: "",
|
||
}
|
||
},
|
||
onLoad() {
|
||
// this.isshow = false
|
||
// this.getData()
|
||
if (uni.getStorageSync('token')) {
|
||
getApp().globalData.token = uni.getStorageSync('token')
|
||
this.isshow = false
|
||
this.getData()
|
||
} else {
|
||
this.isshow = true
|
||
}
|
||
},
|
||
components: {
|
||
overlay
|
||
},
|
||
methods: {
|
||
getData(aa) {
|
||
if (!aa) {
|
||
uni.showLoading({
|
||
title: '加载中...',
|
||
})
|
||
}
|
||
this.api.homedata().then((res) => {
|
||
if (res.data.code == '200') {
|
||
this.receive_num = res.data.data.receive_num
|
||
this.gethome(aa)
|
||
} else {
|
||
uni.showToast({
|
||
title: res.data.message,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
getAccountInfo(){
|
||
this.api.homedata().then((res) => {
|
||
if (res.data.code == '200') {
|
||
this.receive_num = res.data.data.receive_num
|
||
} else {
|
||
uni.showToast({
|
||
title: res.data.message,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
gethome(aa) {
|
||
this.api.getprizes({
|
||
activity_id: 1
|
||
}).then((res) => {
|
||
console.log(res)
|
||
if (res.data.code == '200') {
|
||
this.ids = res.data.data.id
|
||
this.process_rate = res.data.data.process_rate
|
||
|
||
if(this.cardStateArray.length>0){
|
||
this.cardStateArray.forEach((item, index) => {
|
||
item.state = false
|
||
})
|
||
}
|
||
this.prizes = res.data.data.prizes
|
||
|
||
const temp = res.data.data.prizes.slice();
|
||
const arrayLen = temp.length
|
||
while(temp.length < 6){
|
||
const randomNumber = Math.floor(Math.random() * arrayLen);
|
||
temp.push(res.data.data.prizes[randomNumber])
|
||
}
|
||
console.log(temp)
|
||
temp.forEach((item, index) => {
|
||
item.state = false
|
||
})
|
||
this.cardStateArray = this.shuffleArray(temp)
|
||
|
||
|
||
this.istrue = true
|
||
} else {
|
||
uni.showToast({
|
||
title: res.data.message,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
})
|
||
},
|
||
flip:Debounce(function(index) {
|
||
let that = this
|
||
console.log(that.cardStateArray)
|
||
if (that.cardStateArray[index].state) {
|
||
return
|
||
}
|
||
that.api.takeit({
|
||
ids: 1
|
||
}).then((res) => {
|
||
console.log(res)
|
||
if (res.data.code == '200') {
|
||
that.link = res.data.data.link
|
||
that.zjtitle = res.data.data.name
|
||
that.cardStateArray[index].name = res.data.data.name
|
||
that.curindex = index
|
||
that.cardStateArray.forEach((item, index) => {
|
||
item.state = true
|
||
})
|
||
setTimeout(function() {
|
||
that.istype = 'iszj'
|
||
that.isshow = true
|
||
}, 800);
|
||
that.getAccountInfo()
|
||
// that.getData('tip')
|
||
} else {
|
||
uni.showToast({
|
||
title: res.data.message,
|
||
icon: 'none'
|
||
})
|
||
}
|
||
})
|
||
// }, 600);
|
||
},1000),
|
||
godui() {
|
||
window.open(this.link, "_blank")
|
||
},
|
||
createState() {
|
||
this.cardStateArray.forEach((item, index) => {
|
||
item.state = false
|
||
})
|
||
// this.cardStateArray = this.shuffleArray(this.cardStateArray);
|
||
this.curindex = null
|
||
this.zjtitle = ""
|
||
this.getData('aa')
|
||
},
|
||
shuffleArray(array) {
|
||
return array.sort(() => Math.random() - 0.5);
|
||
},
|
||
tk(val) {
|
||
this.istype = val
|
||
this.isshow = true
|
||
},
|
||
gomy() {
|
||
uni.navigateTo({
|
||
url: "/pages/my/index"
|
||
})
|
||
},
|
||
backshow(e) {
|
||
this.isshow = false
|
||
if (e.types == 'loginok') {
|
||
this.getData()
|
||
}
|
||
if (e.types == 'go') {
|
||
this.createState()
|
||
}
|
||
},
|
||
},
|
||
onReachBottom() {
|
||
|
||
},
|
||
onPullDownRefresh() {
|
||
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
page {
|
||
background: #FFE4BD !important;
|
||
}
|
||
|
||
.u-line-progress {
|
||
overflow: initial !important;
|
||
}
|
||
|
||
.t1 {
|
||
background-image: url('~@/static/lhj.png') !important;
|
||
background-size: 100% 100%;
|
||
height: 1344rpx;
|
||
overflow: hidden;
|
||
|
||
.count {
|
||
background-image: url('~@/static/count.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 263rpx;
|
||
height: 63rpx;
|
||
line-height: 63rpx;
|
||
text-align: center;
|
||
position: absolute;
|
||
left: 50%;
|
||
transform: translate(-50%);
|
||
bottom: 70rpx;
|
||
}
|
||
}
|
||
|
||
.t2 {
|
||
background-image: url('~@/static/jpzs.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 726rpx;
|
||
height: 902rpx;
|
||
|
||
.u-percentage-slot {
|
||
background-image: url('~@/static/hj.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 55rpx;
|
||
height: 38rpx;
|
||
margin-right: -5px;
|
||
}
|
||
|
||
.jcb {
|
||
background-image: url('~@/static/jcbg.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 179rpx;
|
||
height: 250rpx;
|
||
}
|
||
}
|
||
|
||
.t3 {
|
||
background-image: url('~@/static/rwzx.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 728rpx;
|
||
height: 497rpx;
|
||
}
|
||
|
||
.t4 {
|
||
background-image: url('~@/static/flow.png') !important;
|
||
background-size: 100% 100%;
|
||
width: 728rpx;
|
||
height: 370rpx;
|
||
}
|
||
|
||
.drawBox {
|
||
width: calc(100% - 280rpx);
|
||
height: 464rpx;
|
||
// margin-top: 50rpx;
|
||
// padding: 0 20rpx;
|
||
flex-wrap: wrap;
|
||
justify-content: space-evenly;
|
||
|
||
.draw-card {
|
||
position: relative;
|
||
width: 145rpx;
|
||
height: 216rpx;
|
||
perspective: 1000rpx;
|
||
/* 设置透视投影 */
|
||
// margin: 0 10rpx;
|
||
|
||
.front,
|
||
.back {
|
||
width: 100%;
|
||
position: absolute;
|
||
backface-visibility: hidden;
|
||
/* 隐藏背面元素 */
|
||
}
|
||
|
||
.front {
|
||
z-index: 2;
|
||
/* 设置正面元素位于背面元素之上 */
|
||
transform: rotateY(0deg);
|
||
/* 初始状态正面朝上 */
|
||
transition: transform 0.6s ease;
|
||
|
||
/* 添加过渡效果 */
|
||
&_reverse {
|
||
transform: rotateY(-180deg);
|
||
/*正面翻转为背面 */
|
||
}
|
||
}
|
||
|
||
.back {
|
||
transform: rotateY(180deg);
|
||
/* 初始状态背面朝上 */
|
||
transition: transform 0.6s ease;
|
||
|
||
/* 添加过渡效果 */
|
||
&_reverse {
|
||
transform: rotateY(0deg);
|
||
/*背面翻转为正面 */
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
</style> |