关闭活动,所有页面显示已结束

This commit is contained in:
yuyongdong 2024-08-29 17:28:19 +08:00
parent 32d75b4a7c
commit 513de7894f
5 changed files with 465 additions and 340 deletions

View File

@ -1,96 +1,100 @@
<template>
<div class="download">
<Header :descText="'Play 5 Games in any mode with your registered E-mail'" />
<h5>
Complete this task to win a share of the
<span>180,000 $CEC</span> prize pool
</h5>
<div class="login-content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
</div>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token">
<span @click="walletLink">Connect</span>
</div>
<div class="address" v-else>{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
<Event />
<div v-if="false">
<h5>
Complete this task to win a share of the
<span>180,000 $CEC</span> prize pool
</h5>
<div class="login-content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
</div>
</li>
<li>
<div class="left">
<div>
<span v-if="!email">2</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
</div>
<div class="right">
<h4>Download the game</h4>
<div class="download-content">
<div class="download-content-counter-fire">
<div class="counter-fire-title">Counter Fire:</div>
<p>Anime-style battle royale and MOBA games.</p>
<div class="counter-fire-btn">
<div>
<a href="https://apps.apple.com/app/counter-fire/id6444462915" target="_blank">
<img src="@/assets/btn_appStore.png" alt />
</a>
</div>
<div>
<a href="https://play.google.com/store/apps/details?id=com.cege.games.release" target="_blank">
<img src="@/assets/btn_googlePlay.png" alt />
</a>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token">
<span @click="walletLink">Connect</span>
</div>
<div class="address" v-else>{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
</div>
</div>
</li>
<li>
<div class="left">
<div>
<span v-if="!email">2</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
</div>
<div class="right">
<h4>Download the game</h4>
<div class="download-content">
<div class="download-content-counter-fire">
<div class="counter-fire-title">Counter Fire:</div>
<p>Anime-style battle royale and MOBA games.</p>
<div class="counter-fire-btn">
<div>
<a href="https://apps.apple.com/app/counter-fire/id6444462915" target="_blank">
<img src="@/assets/btn_appStore.png" alt />
</a>
</div>
<div>
<a href="https://play.google.com/store/apps/details?id=com.cege.games.release" target="_blank">
<img src="@/assets/btn_googlePlay.png" alt />
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
<li>
<div class="left">
<div>
<img
v-if="missions.current != missions.target"
src="@/assets/icon_done.png"
alt
/>
<span v-else>3</span>
</li>
<li>
<div class="left">
<div>
<img
v-if="missions.current != missions.target"
src="@/assets/icon_done.png"
alt
/>
<span v-else>3</span>
</div>
</div>
</div>
<div class="right">
<h4>
Completion Progress
<span>
<span>{{ missions.current }}</span>/{{ missions.target }}
</span>
</h4>
</div>
</li>
<div class="right">
<h4>
Completion Progress
<span>
<span>{{ missions.current }}</span>/{{ missions.target }}
</span>
</h4>
</div>
</li>
<!-- <div @click="walletLink">Wallet Connect</div>
<div>{{ address }}</div>
<div @click="logOut">Wallet logOut</div>-->
</div>
<div class="dialog" v-if="isDownloadDialog">
<div class="dialog-content">
<div class="dialog-tips">
<p>Please complete game account</p>
<p>registration first</p>
</div>
<div class="dialog-btn">
<div @click="toHome">
<!-- <router-link to="/">Go</router-link> -->
Go
<!-- <div @click="walletLink">Wallet Connect</div>
<div>{{ address }}</div>
<div @click="logOut">Wallet logOut</div>-->
</div>
<div class="dialog" v-if="isDownloadDialog">
<div class="dialog-content">
<div class="dialog-tips">
<p>Please complete game account</p>
<p>registration first</p>
</div>
<div class="dialog-btn">
<div @click="toHome">
<!-- <router-link to="/">Go</router-link> -->
Go
</div>
<div class="close" @click="isDownloadDialog = false">Close</div>
</div>
<div class="close" @click="isDownloadDialog = false">Close</div>
</div>
</div>
</div>
@ -99,12 +103,14 @@
<script>
import Header from "@/components/header.vue";
import Event from "@/components/event.vue"
import { BitgetWallet } from "@/wallet/BitgetWallet.js";
import { apiProgress, getEmail } from "@/utils/request";
export default {
components: {
Header
Header,
Event
},
data() {
return {

View File

@ -1,93 +1,98 @@
<template>
<div class="login">
<Header :descText="'Connect your Bitget Wallet and register'" />
<h5>
Register to win a share of the
<span>45,000 $CEC</span> prize pool
</h5>
<div class="login-content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token" @click="walletLink">
<span>Connect</span>
</div>
<div v-else class="address">{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
</div>
</div>
</li>
<li v-if="token && !email">
<div class="left">
<div>
<span v-if="isEmailTips != 4">2</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Register a game account</h4>
<!-- <div class="connect" @click="walletLink">Connect</div> -->
<div class="email-input">
<input type="text" placeholder="Email Address" v-model="userEmail" />
<p v-if="isEmailTips == 1">*Cannot be empty</p>
<p v-if="isEmailTips == 2">*Please enter the correct email format</p>
<p v-if="isEmailTips == 3">*Already registered</p>
</div>
<div class="send">
<span class="send-btn" v-if="isLogin" @click="getCode">Send</span>
<span class="count-time" v-else>{{ countdown }}S</span>
</div>
</div>
</li>
<li v-if="isEmailTips == 4">
<div class="left">
<div>
<span v-if="isCodeTips != 4">3</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Verification code</h4>
<div class="email-input">
<input type="text" placeholder="Code" v-model="userCode" />
<!-- 不能为空 -->
<p v-if="isCodeTips == 1">*Cannot be empty</p>
<!-- 不正确-->
<p v-if="isCodeTips == 2">*Please enter the correct code format</p>
<!-- 验证码错误 -->
<p v-if="isCodeTips == 3">*code not found</p>
</div>
<div class="send">
<span class="send-btn" @click="confirmLogin">Confirm</span>
</div>
</div>
</li>
<Event />
<div v-if="false">
<h5>
Register to win a share of the
<span>45,000 $CEC</span> prize pool
</h5>
<div class="login-content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token" @click="walletLink">
<span>Connect</span>
</div>
<div v-else class="address">{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
</div>
</div>
</li>
<li v-if="token && !email">
<div class="left">
<div>
<span v-if="isEmailTips != 4">2</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Register a game account</h4>
<!-- <div class="connect" @click="walletLink">Connect</div> -->
<div class="email-input">
<input type="text" placeholder="Email Address" v-model="userEmail" />
<p v-if="isEmailTips == 1">*Cannot be empty</p>
<p v-if="isEmailTips == 2">*Please enter the correct email format</p>
<p v-if="isEmailTips == 3">*Already registered</p>
</div>
<div class="send">
<span class="send-btn" v-if="isLogin" @click="getCode">Send</span>
<span class="count-time" v-else>{{ countdown }}S</span>
</div>
</div>
</li>
<li v-if="isEmailTips == 4">
<div class="left">
<div>
<span v-if="isCodeTips != 4">3</span>
<img v-else src="@/assets/icon_done.png" alt="">
</div>
</div>
<div class="right">
<h4>Verification code</h4>
<div class="email-input">
<input type="text" placeholder="Code" v-model="userCode" />
<!-- 不能为空 -->
<p v-if="isCodeTips == 1">*Cannot be empty</p>
<!-- 不正确-->
<p v-if="isCodeTips == 2">*Please enter the correct code format</p>
<!-- 验证码错误 -->
<p v-if="isCodeTips == 3">*code not found</p>
</div>
<div class="send">
<span class="send-btn" @click="confirmLogin">Confirm</span>
</div>
</div>
</li>
</div>
<div class="dialog" v-if="isDownloadDialog">
<h2>Task completed</h2>
<div class="logo">
<img src="@/assets/logo2.png" alt="">
</div>
<div class="user-info">
<div class="user-info-label">Game Account:</div>
<p>{{ email || userEmail }}</p>
<div class="user-info-label">Bitget wallet:</div>
<p class="cor">{{ address }}</p>
</div>
<div class="user-info-btn">
<div class="left">
<router-link to="/download">Download</router-link>
<div class="dialog" v-if="isDownloadDialog">
<h2>Task completed</h2>
<div class="logo">
<img src="@/assets/logo2.png" alt="">
</div>
<div class="user-info">
<div class="user-info-label">Game Account:</div>
<p>{{ email || userEmail }}</p>
<div class="user-info-label">Bitget wallet:</div>
<p class="cor">{{ address }}</p>
</div>
<div class="user-info-btn">
<div class="left">
<router-link to="/download">Download</router-link>
</div>
<div class="right" @click="isDownloadDialog = false">Close</div>
</div>
<div class="right" @click="isDownloadDialog = false">Close</div>
</div>
</div>
</div>
@ -95,6 +100,7 @@
<script>
import Header from "@/components/header.vue";
import Event from "@/components/event.vue"
import { providers } from "ethers";
import { signLogin } from "@/wallet/utils";
import { BitgetWallet } from "@/wallet/BitgetWallet.js";
@ -104,7 +110,8 @@ import { FirebaseUtil } from "@/utils/firebase.util";
export default {
components: {
Header
Header,
Event
},
data() {

View File

@ -1,168 +1,173 @@
<template>
<div class="diamonds">
<Header :descText="'Purchase any amount of diamonds'" />
<TipsDialog v-if="isTips" :text="tipsText" :status="tipsStatus" />
<h5>
Complete this task to win a share of the
<span>225,000 $CEC</span> prize pool
</h5>
<h6>Select a network</h6>
<div class="net-id-list">
<div
:class="netIdIndex != index ? 'net-id-item' : 'net-id-item active'"
v-for="(item, index) in netIdList"
:key="index"
@click="selectNetId(index)"
>
<div>
<img :src="item.imgSrc" alt />
<Event />
<div v-if="false">
<TipsDialog v-if="isTips" :text="tipsText" :status="tipsStatus" />
<h5>
Complete this task to win a share of the
<span>225,000 $CEC</span> prize pool
</h5>
<h6>Select a network</h6>
<div class="net-id-list">
<div
:class="netIdIndex != index ? 'net-id-item' : 'net-id-item active'"
v-for="(item, index) in netIdList"
:key="index"
@click="selectNetId(index)"
>
<div>
<img :src="item.imgSrc" alt />
</div>
</div>
</div>
</div>
<div class="diamonds-content">
<div class="content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
</div>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token">
<span @click="walletLink">Connect</span>
</div>
<div class="address" v-else>{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
</div>
</div>
</li>
<li v-if="token">
<div class="left">
<div>
<span>2</span>
<!-- <img src="@/assets/icon_done.png" alt=""> -->
</div>
</div>
<div class="right">
<h4>Purchase diamonds</h4>
<p>*Use diamonds for items and skin lotteries in-game</p>
<div class="purchase">
<div class="purchase-logo">
<div class="logo">
<img src="@/assets/icon_diamond.png" alt />
<span>× {{brickworkAmount * 100}}</span>
</div>
<div class="diamonds-content">
<div class="content">
<li>
<div class="left">
<div>
<span v-if="!token">1</span>
<img v-else src="@/assets/icon_done.png" alt />
</div>
<div class="amount-input">
<!-- <div class="left"> -->
<span @click="rechargeDecrease">-</span>
<input
type="text"
placeholder="0"
v-model="brickworkAmount"
@input="handleInput"
oninput="value=value.replace(/[^\d]/g,'')"
/>
<p>Unit</p>
<span @click="rechargeIncrease">+</span>
<!-- </div> -->
</div>
<div class="right">
<h4>Bitget Wallet</h4>
<div class="connect" v-if="!token">
<span @click="walletLink">Connect</span>
</div>
<div class="price-amount">
<span>{{ brickworkAmount }}</span>
<!-- <img :src="currencyData.imgSrc" alt=""> -->
<img class="icon" v-if="currencyData.name == 'USDC'" src="@/assets/usdc.png" alt />
<img
class="icon"
v-if="currencyData.name == 'USDT'"
src="@/assets/icon_USDT.png"
alt
/>
<div class="drop-down">
<div class="drop-down-icon" @click="isDropdown = !isDropdown">
<img src="@/assets/selectCoin_arrow.png" alt />
<div class="address" v-else>{{ address }}</div>
<div class="email" v-if="token && email">
Game Account:
<span>{{ email }}</span>
</div>
</div>
</li>
<li v-if="token">
<div class="left">
<div>
<span>2</span>
<!-- <img src="@/assets/icon_done.png" alt=""> -->
</div>
</div>
<div class="right">
<h4>Purchase diamonds</h4>
<p>*Use diamonds for items and skin lotteries in-game</p>
<div class="purchase">
<div class="purchase-logo">
<div class="logo">
<img src="@/assets/icon_diamond.png" alt />
<span>× {{brickworkAmount * 100}}</span>
</div>
</div>
<div class="dropdown-menu" v-if="isDropdown">
<div
class="dropdown-item"
v-for="(item, index) in buyData.currency_list"
:key="index"
@click="cliCurrency(item)"
>
<!-- <img :src="dropdownList[index].imgSrc" alt=""> -->
<img v-if="item.name == 'USDC'" src="@/assets/usdc.png" alt />
<img v-if="item.name == 'USDT'" src="@/assets/icon_USDT.png" alt />
<span>{{ item.name }}</span>
<div class="amount-input">
<!-- <div class="left"> -->
<span @click="rechargeDecrease">-</span>
<input
type="text"
placeholder="0"
v-model="brickworkAmount"
@input="handleInput"
oninput="value=value.replace(/[^\d]/g,'')"
/>
<p>Unit</p>
<span @click="rechargeIncrease">+</span>
<!-- </div> -->
</div>
<div class="price-amount">
<span>{{ brickworkAmount }}</span>
<!-- <img :src="currencyData.imgSrc" alt=""> -->
<img class="icon" v-if="currencyData.name == 'USDC'" src="@/assets/usdc.png" alt />
<img
class="icon"
v-if="currencyData.name == 'USDT'"
src="@/assets/icon_USDT.png"
alt
/>
<div class="drop-down">
<div class="drop-down-icon" @click="isDropdown = !isDropdown">
<img src="@/assets/selectCoin_arrow.png" alt />
</div>
</div>
<div class="dropdown-menu" v-if="isDropdown">
<div
class="dropdown-item"
v-for="(item, index) in buyData.currency_list"
:key="index"
@click="cliCurrency(item)"
>
<!-- <img :src="dropdownList[index].imgSrc" alt=""> -->
<img v-if="item.name == 'USDC'" src="@/assets/usdc.png" alt />
<img v-if="item.name == 'USDT'" src="@/assets/icon_USDT.png" alt />
<span>{{ item.name }}</span>
</div>
</div>
</div>
<div class="confirm-btn" @click="conformBtn">Confirm</div>
</div>
<div class="confirm-btn" @click="conformBtn">Confirm</div>
<!-- <div class="address">0x803f05df41ebae0305e768c1645484d3d2e4d42b</div> -->
</div>
<!-- <div class="address">0x803f05df41ebae0305e768c1645484d3d2e4d42b</div> -->
</div>
</li>
</li>
</div>
</div>
</div>
<div class="top-up-dialog" v-if="isDownloadDialog">
<div class="close" @click="closeDownload">
<img src="@/assets/Close_counter.png" alt="">
</div>
<h2>Task completed</h2>
<div class="logo">
<img src="@/assets/icon_diamond.png" alt />
</div>
<h4>You got × {{brickworkAmount * 100}}</h4>
<div class="user-info">
<div class="user-info-label">Account:</div>
<p>{{ email }}</p>
<div class="user-info-label">Bitget wallet:</div>
<p>{{ address }}</p>
</div>
<div class="tips">
<p>*Check and spend diamonds in the game.</p>
<p>Rewards will be airdrop to your Bitget Wallet in the future</p>
</div>
<!-- <div class="user-info-btn">
<div class="top-up-dialog" v-if="isDownloadDialog">
<div class="close" @click="closeDownload">
<img src="@/assets/Close_counter.png" alt />
</div>
<h2>Task completed</h2>
<div class="logo">
<img src="@/assets/icon_diamond.png" alt />
</div>
<h4>You got × {{brickworkAmount * 100}}</h4>
<div class="user-info">
<div class="user-info-label">Account:</div>
<p>{{ email }}</p>
<div class="user-info-label">Bitget wallet:</div>
<p>{{ address }}</p>
</div>
<div class="tips">
<p>*Check and spend diamonds in the game.</p>
<p>Rewards will be airdrop to your Bitget Wallet in the future</p>
</div>
<!-- <div class="user-info-btn">
<div class="left">Download</div>
<div class="right" @click="isDownloadDialog = false">Close</div>
</div>-->
</div>
<div class="dialog" v-if="isLoginDialog">
<div class="dialog-content">
<div class="dialog-tips">
<p>Please complete game account</p>
<p>registration first</p>
</div>
<div class="dialog-btn">
<div @click="toHome">
<!-- <router-link to="/">Go</router-link> -->
Go
</div>-->
</div>
<div class="dialog" v-if="isLoginDialog">
<div class="dialog-content">
<div class="dialog-tips">
<p>Please complete game account</p>
<p>registration first</p>
</div>
<div class="dialog-btn">
<div @click="toHome">
<!-- <router-link to="/">Go</router-link> -->
Go
</div>
<div class="close" @click="isLoginDialog = false">Close</div>
</div>
<div class="close" @click="isLoginDialog = false">Close</div>
</div>
</div>
<LoadingDialog v-if="loadingDialogVisible" />
</div>
<LoadingDialog v-if="loadingDialogVisible" />
</div>
</template>
<script>
import { providers } from "ethers";
import Header from "@/components/header.vue";
import Event from "@/components/event.vue"
import { BitgetWallet } from "@/wallet/BitgetWallet.js";
import { getEmail, apiGoods } from "@/utils/request";
import TipsDialog from "./tipsDialog.vue"
import LoadingDialog from "./loadingDialog.vue"
import TipsDialog from "./tipsDialog.vue";
import LoadingDialog from "./loadingDialog.vue";
import { FirebaseUtil } from "@/utils/firebase.util";
export default {
components: {
Header,
Event,
TipsDialog,
LoadingDialog
},
@ -212,11 +217,11 @@ export default {
email: "",
net_id: process.env.VUE_APP_ETH_ID,
buyData: {},
tipsText: '',
tipsText: "",
tipsStatus: 0,
isTips: false,
tipsTime: 3,
loadingDialogVisible: false,
loadingDialogVisible: false
};
},
@ -248,8 +253,8 @@ export default {
this.currencyData["name"] = this.buyData.currency_list[0].name;
this.currencyData.imgSrc = this.buyData.currency_list[0].name;
}
} catch(e) {
console.log(e)
} catch (e) {
console.log(e);
}
},
@ -309,42 +314,46 @@ export default {
account_address: this.address,
currency_address: this.currencyData.address
};
this.loadingDialogVisible = true
this.loadingDialogVisible = true;
if (email) {
setImmediate(() => {
new FirebaseUtil().uploadEvent('begin_charge', { email, data })
})
try{
new FirebaseUtil().uploadEvent("begin_charge", { email, data });
});
try {
let bitgetWallet = new BitgetWallet();
let res = await bitgetWallet.execBuyItem(data);
this.loadingDialogVisible = false
this.isDownloadDialog = true
this.tipsText = 'Top-Up Successful'
this.tipsTime = 3
this.tipsStatus = 0
this.loadingDialogVisible = false;
this.isDownloadDialog = true;
this.tipsText = "Top-Up Successful";
this.tipsTime = 3;
this.tipsStatus = 0;
} catch (e) {
this.tipsStatus = 1
this.loadingDialogVisible = false
this.countTime()
if(e.message.indexOf('request') > -1) {
this.tipsText = 'Top-Up Cancelled by User'
this.tipsTime = 3
this.tipsStatus = 1;
this.loadingDialogVisible = false;
this.countTime();
if (e.message.indexOf("request") > -1) {
this.tipsText = "Top-Up Cancelled by User";
this.tipsTime = 3;
} else {
this.tipsText = 'Top-Up fail.'
this.tipsText = "Top-Up fail.";
}
new FirebaseUtil().uploadEvent('charge_error', {email, data, error: e.message || e})
new FirebaseUtil().uploadEvent("charge_error", {
email,
data,
error: e.message || e
});
}
} else {
this.loadingDialogVisible = false
this.loadingDialogVisible = false;
this.isLoginDialog = true;
}
},
//
async walletLink() {
var isBitgetWallet = navigator.userAgent.indexOf('BitKeep') > 0
if(!isBitgetWallet) {
window.location.href = `https://bkcode.vip?action=dapp&url=${location.origin}/register`
var isBitgetWallet = navigator.userAgent.indexOf("BitKeep") > 0;
if (!isBitgetWallet) {
window.location.href = `https://bkcode.vip?action=dapp&url=${location.origin}/register`;
} else {
let bitgetWallet = new BitgetWallet();
let res = await bitgetWallet.getAccessToken();
@ -354,7 +363,7 @@ export default {
this.token = res.token;
this.address = res.accounts[0];
this.email = getEmail(this.token);
this.getGoodsList()
this.getGoodsList();
}
},
@ -369,20 +378,19 @@ export default {
},
//
countTime: function () {
if(this.tipsTime == 0) {
this.isTips = false
countTime: function() {
if (this.tipsTime == 0) {
this.isTips = false;
} else {
this.isTips = true
this.tipsTime--
this.isTips = true;
this.tipsTime--;
}
setTimeout(this.countTime, 1000)
setTimeout(this.countTime, 1000);
},
closeDownload() {
this.isDownloadDialog = false
this.getGoodsList()
},
this.isDownloadDialog = false;
this.getGoodsList();
}
}
};
</script>
@ -713,7 +721,7 @@ export default {
left: 18px;
width: 1px;
height: calc(100% - 30px);
background: #3CEEFE;
background: #3ceefe;
z-index: 1;
}
&:last-child {

104
src/components/event.vue Normal file

File diff suppressed because one or more lines are too long

View File

@ -3,9 +3,9 @@
<div class="home-header-logo">
<img src="@/assets/logo1.png" alt />
</div>
<div class="home-header-tips">
<!-- <div class="home-header-tips">
<p>{{ descText }}</p>
</div>
</div> -->
</div>
</template>