215 lines
4.7 KiB
Vue
215 lines
4.7 KiB
Vue
<template>
|
|
<div class="drawCon" @touchmove.prevent>
|
|
<!-- 抽奖结果反馈 -->
|
|
<div class="draw_container" v-if="!isgetMoney">
|
|
<!-- 正常中奖 -->
|
|
<div class="has_prize" v-if="drawStatus">
|
|
<div class="money_num">
|
|
<span>{{ amount }}</span
|
|
>元
|
|
</div>
|
|
<div class="get_btn" @click="getMoney"></div>
|
|
</div>
|
|
|
|
<!-- 谢谢参与 -->
|
|
<div class="no_prize" v-if="!drawStatus"></div>
|
|
|
|
<div class="cls_btn" @click="hide"></div>
|
|
</div>
|
|
|
|
<!-- 领奖后的弹窗 -->
|
|
<div class="add_container" v-if="isgetMoney">
|
|
<!-- 已经添加过企微人员 -->
|
|
<div class="is_added">
|
|
<div class="go_index_btn"></div>
|
|
</div>
|
|
|
|
<div class="cls_btn" @click="hide"></div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
onBeforeMount,
|
|
onMounted,
|
|
defineEmits,
|
|
defineProps,
|
|
reactive,
|
|
ref,
|
|
toRefs,
|
|
} from "vue";
|
|
import gsap from "gsap";
|
|
import axios from "axios";
|
|
import service from "@/api/httpServe";
|
|
import qs from "qs";
|
|
import wx from "@/utils/wx-jssdk.1.6.0.js";
|
|
import { Toast, Dialog } from "vant";
|
|
import { useStore } from "vuex";
|
|
|
|
// 初始化
|
|
const emit = defineEmits(["drawCon"]); // 声明触发事件,对应父组件上面的方法
|
|
const props = defineProps({ prizeMsg: Object }); // 获取props
|
|
const store = useStore();
|
|
|
|
const drawStatus = ref(true);
|
|
const isgetMoney = ref(false);
|
|
const amount = ref(0);
|
|
const prizeId = ref(1);
|
|
|
|
// 页面挂载前
|
|
onBeforeMount(() => {
|
|
amount.value = props.prizeMsg.amount;
|
|
prizeId.value = props.prizeMsg.id;
|
|
|
|
if (props.prizeMsg.amount == 0) {
|
|
drawStatus.value = false;
|
|
}
|
|
console.log("props:", props.prizeMsg);
|
|
});
|
|
|
|
// 页面挂载后
|
|
onMounted(() => {
|
|
gsap.from(".drawCon", { duration: 0.3, autoAlpha: 0 });
|
|
gsap.from(".draw_container", {
|
|
duration: 0.3,
|
|
scale: 0.2,
|
|
autoAlpha: 0,
|
|
delay: 0.1,
|
|
});
|
|
// gsap.from('.rule_cls_btn', { duration: 0.3, y: 20, autoAlpha: 0, delay: 0.5 })
|
|
});
|
|
|
|
const hide = () => {
|
|
emit("drawCon");
|
|
};
|
|
|
|
// 立即领取红包
|
|
const getMoney = () => {
|
|
redpacket(prizeId.value);
|
|
};
|
|
|
|
// 领取接口
|
|
const redpacket = (prizeId) => {
|
|
let redpacketId = prizeId;
|
|
service
|
|
.post(
|
|
process.env.VUE_APP_API +
|
|
"/cms-activity/cms88/redpacket/receive/" +
|
|
redpacketId,
|
|
{}
|
|
)
|
|
.then((res) => {
|
|
console.log("领取红包结果", res);
|
|
let data = res.data;
|
|
if (data.code == 0) {
|
|
gsap.to(".draw_container", {
|
|
duration: 0.3,
|
|
scale: 0,
|
|
autoAlpha: 0,
|
|
onComplete: () => {
|
|
drawStatus.value = false;
|
|
isgetMoney.value = true;
|
|
// gsap.form('.add_container',{duration:0.5,scale:0,autoAlpha:0,})
|
|
},
|
|
});
|
|
} else {
|
|
Toast(data.msg);
|
|
|
|
Dialog.confirm({
|
|
title: "温馨提示",
|
|
message: data.msg,
|
|
confirmButtonText: '前往绑定',
|
|
})
|
|
.then(() => {
|
|
wx.miniProgram.navigateTo({
|
|
url: "/subs/bind/pages/login/login",
|
|
});
|
|
})
|
|
.catch(() => {
|
|
console.log(2);
|
|
// on cancel
|
|
});
|
|
}
|
|
});
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.drawCon {
|
|
width: 100%;
|
|
height: 100%;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
background-color: rgba(0, 0, 0, 0.7);
|
|
|
|
.draw_container {
|
|
width: 750px;
|
|
height: 1180px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
|
|
.has_prize {
|
|
@include box(530px, 594px);
|
|
@include bg_pos("../assets/img/pop/luckybag.png");
|
|
position: relative;
|
|
|
|
.money_num {
|
|
@include pos(530px, 92px, 0px, 134px);
|
|
color: #ff480e;
|
|
font-size: 32px;
|
|
text-align: center;
|
|
font-weight: 700;
|
|
|
|
span {
|
|
font-size: 82px;
|
|
}
|
|
}
|
|
|
|
.get_btn {
|
|
@include pos(274px, 92px, 139px, 389px);
|
|
@include bg_pos("../assets/img/pop/draw_got_btn.png");
|
|
}
|
|
}
|
|
|
|
.no_prize {
|
|
@include box(573px, 362px);
|
|
@include bg_pos("../assets/img/pop/no_prize_pop.png");
|
|
}
|
|
}
|
|
|
|
.add_container {
|
|
width: 750px;
|
|
height: 1180px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
|
|
.is_added {
|
|
@include box(530px, 594px);
|
|
@include bg_pos("../assets/img/pop/got_luckyBag_pop.png");
|
|
position: relative;
|
|
|
|
.go_index_btn {
|
|
@include pos(394px, 92px, 79px, 389px);
|
|
@include bg_pos("../assets/img/pop/to_index_btn.png");
|
|
}
|
|
}
|
|
}
|
|
|
|
.cls_btn {
|
|
@include box(72px, 72px);
|
|
@include bg_pos("../assets/img/pop/cls_btn.png");
|
|
margin-top: 50px;
|
|
}
|
|
}
|
|
</style> |