Merge branch '240416' into nft-cooperation-240418
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 15 KiB |
@ -5,19 +5,26 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<link rel="icon" href="/logo.png">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<title>Hill's Treasure Hunt</title>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/src/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/src/img/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/src/img/favicon-16x16.png">
|
||||
<link rel="manifest" href="/src/img/site.webmanifest">
|
||||
<link rel="mask-icon" href="/src/img/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<meta
|
||||
name="description"
|
||||
content="Explore for chests; boost to unlock their full potential"
|
||||
/>
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://mint.counterfire.games/mint.png"
|
||||
/>
|
||||
<meta
|
||||
name="description"
|
||||
content="Heroes Assemble: MOBA Battles Beyond Imagination"
|
||||
/>
|
||||
<meta
|
||||
property="twitter:image"
|
||||
content="https://gacha.counterfire.games/images/counter.png"
|
||||
content="https://pbs.twimg.com/media/GLITHinbUAA1N8p?format=jpg&name=large"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
@ -27,6 +34,7 @@
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
<script src="https://www.google.com/recaptcha/api.js?render=6Ld3xoIpAAAAABW7f5ImgAC6GcWLeDCbt5HPXqe2"></script>
|
||||
<script src="/src/fingerprint.js"></script>
|
||||
<script th:inline="javascript">
|
||||
/**
|
||||
* 加载外部js
|
||||
|
BIN
public/src/img/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
public/src/img/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
public/src/img/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 15 KiB |
9
public/src/img/browserconfig.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#da532c</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
BIN
public/src/img/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1021 B |
BIN
public/src/img/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
public/src/img/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
public/src/img/mstile-150x150.png
Normal file
After Width: | Height: | Size: 11 KiB |
23
public/src/img/safari-pinned-tab.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M2290 5110 c-30 -4 -80 -11 -110 -15 -30 -5 -64 -9 -75 -10 -11 -1
|
||||
-27 -5 -35 -7 -8 -3 -67 -17 -130 -33 -354 -86 -692 -252 -980 -481 -112 -89
|
||||
-328 -307 -411 -414 -223 -287 -394 -635 -475 -965 -55 -224 -67 -325 -70
|
||||
-590 -1 -137 2 -279 7 -315 5 -36 12 -83 15 -105 58 -426 274 -908 563 -1255
|
||||
55 -66 261 -274 317 -320 337 -277 697 -454 1105 -543 205 -45 279 -52 564
|
||||
-51 290 0 386 11 615 69 224 57 502 170 658 269 23 14 44 26 47 26 6 0 198
|
||||
131 205 140 3 3 21 17 40 30 19 14 42 32 51 40 8 8 46 42 84 75 96 85 185 178
|
||||
264 275 20 25 39 47 42 50 12 11 148 209 181 265 180 302 312 692 345 1025 15
|
||||
144 9 546 -10 665 -66 425 -225 807 -477 1150 -82 112 -124 160 -255 290 -345
|
||||
345 -749 570 -1220 680 -127 30 -182 39 -315 54 -88 11 -460 11 -540 1z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
19
public/src/img/site.webmanifest
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "",
|
||||
"short_name": "",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
@ -9,17 +9,17 @@ let errmsg = err
|
||||
errmsg = JSON.stringify(err);
|
||||
}
|
||||
if (errmsg.indexOf('insufficient tickets') > -1) {
|
||||
errmsg = 'Insufficient exploration attempts'
|
||||
errmsg = 'Not enough exploration attempts.'
|
||||
} else if(errmsg.indexOf('invalid opcode: opcode 0xd8 not defined') > -1) {
|
||||
errmsg = `Claim failed due to insufficient gas.`
|
||||
} else if(errmsg.indexOf('User rejected the request') > -1) {
|
||||
errmsg = `User refuses to switch networks`
|
||||
errmsg = `Please select the correct network to continue.`
|
||||
} else if(errmsg.indexOf('User denied transaction signature') > -1) {
|
||||
errmsg = `User refuses to sign`
|
||||
errmsg = `Signature required to proceed.`
|
||||
} else if(errmsg.indexOf('Internal JSON-RPC error') > -1) {
|
||||
errmsg = `Insufficient gas fees`
|
||||
errmsg = `Insufficient gas fees.`
|
||||
} else if(errmsg.indexOf('Hash: not available') > -1) {
|
||||
errmsg = `Operation timed out. Please retry`
|
||||
errmsg = `Operation timed out. Please retry.`
|
||||
} else if(errmsg.indexOf('chest already opened') > -1) {
|
||||
errmsg = 'chest already opened'
|
||||
// } else if(errmsg.indexOf('chest already opened') > -1) {
|
||||
|
@ -5,7 +5,7 @@
|
||||
<div>
|
||||
<img src="@/assets/common/loding .png" alt />
|
||||
</div>
|
||||
<p>Please wait. Data is currently loading </p>
|
||||
<p>Please wait. Data is loading</p>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
@ -52,11 +52,11 @@ export default {
|
||||
name: "OKXwallet",
|
||||
value: "okxwallet",
|
||||
imgUrl: require("./../../assets/home/icon_OKXwallet.png")
|
||||
},
|
||||
{
|
||||
name: "WalletConnect",
|
||||
value: "connect",
|
||||
imgUrl: require("./../../assets/home/icon_ConnectWallet.png")
|
||||
// },
|
||||
// {
|
||||
// name: "WalletConnect",
|
||||
// value: "connect",
|
||||
// imgUrl: require("./../../assets/home/icon_ConnectWallet.png")
|
||||
}
|
||||
],
|
||||
isWallet: !!localStorage.getItem('walletName'),
|
||||
@ -220,7 +220,7 @@ div {
|
||||
// border: 2px solid #d5befa;
|
||||
}
|
||||
}
|
||||
li:nth-child(4) {
|
||||
li:nth-child(3) {
|
||||
padding-left: 0;
|
||||
background: url('@/assets/common/disconnect.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
|
2130
src/utils/fingerprint.js
Normal file
@ -2,6 +2,7 @@ const API_BASE = process.env.VUE_APP_API_URL.replace('/api', '');
|
||||
import CryptoJS from 'crypto-js'
|
||||
import axios from 'axios'
|
||||
import store from '@/store'
|
||||
import fp from '@/utils/fingerprint.js'
|
||||
|
||||
const toJson = res => res.json();
|
||||
|
||||
@ -66,9 +67,12 @@ export const loginNonce = async (address) => {
|
||||
}
|
||||
|
||||
export const loginWithSignature = async (message, signature, activity) => {
|
||||
let fps = await fp.load();
|
||||
let result = await fps.get()
|
||||
const clientId = result.clientId;
|
||||
return fetch(`${API_BASE}/api/wallet/login`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ message, signature, activity }),
|
||||
body: JSON.stringify({ message, signature, activity,clientId }),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
|
@ -202,7 +202,6 @@
|
||||
<template slot="empty">
|
||||
<div>No Data</div>
|
||||
</template>
|
||||
<el-table-column label="Action">Open the Treasure</el-table-column>
|
||||
<el-table-column label="Time">
|
||||
<template
|
||||
slot-scope="scope"
|
||||
|
@ -108,10 +108,17 @@ export default {
|
||||
this.isLoading = false
|
||||
cc.mainAnim.setCurrPos(getTotalUsed)
|
||||
cc.mainAnim.setData(step)
|
||||
if(step >=8) {
|
||||
let stepTimeId = setInterval(() => {
|
||||
this.$emit('awardDialog', data)
|
||||
clearInterval(stepTimeId)
|
||||
},8*2000)
|
||||
} else {
|
||||
let stepTimeId = setInterval(() => {
|
||||
this.$emit('awardDialog', data)
|
||||
clearInterval(stepTimeId)
|
||||
},step*2000)
|
||||
}
|
||||
localStorage.removeItem(storeageKey)
|
||||
clearInterval(serTimeId)
|
||||
}
|
||||
|
@ -106,24 +106,21 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.token = getToken()
|
||||
if(this.$route.params.name) {
|
||||
if(this.$route.params.code) {
|
||||
if(this.$route.params.code.split("=")[0] == 'box') {
|
||||
this.boxCode = this.$route.params.code.split("box=")[1];
|
||||
this.boxCode = this.$route.params.code.split("=")[1];
|
||||
this.getBoxData()
|
||||
if(this.token) {
|
||||
this.getHelpBoxLog()
|
||||
this.initBoxState(this.boxCode)
|
||||
}
|
||||
// } else {
|
||||
// this.$emit('handleClose')
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 宝箱信息接口
|
||||
async getBoxData() {
|
||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state', {chestId: this.boxCode},{})
|
||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state', {code: this.boxCode},{})
|
||||
if(res.data.errcode == 0) {
|
||||
this.boxData = res.data.data
|
||||
} else if(res.data.errcode == 14) {
|
||||
@ -160,13 +157,13 @@ export default {
|
||||
// 4、开始助力
|
||||
await this.sendEnhanceReq(this.boxCode)
|
||||
} else {
|
||||
this.$showErr('Boosting limit')
|
||||
this.$showErr('Boost limit reached.')
|
||||
}
|
||||
} else {
|
||||
this.$showErr('Insufficient boosting attempts')
|
||||
this.$showErr('Not enough boosts available.')
|
||||
}
|
||||
} else {
|
||||
this.$showErr('Boosting already performed')
|
||||
this.$showErr('Already boosted.')
|
||||
}
|
||||
|
||||
|
||||
@ -225,7 +222,7 @@ export default {
|
||||
|
||||
// 助力状态查询
|
||||
async initBoxState(boxCode) {
|
||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state',{chestId: boxCode, },{headers: { Authorization: `Bearer ${this.token}` }})
|
||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state',{code: boxCode, },{headers: { Authorization: `Bearer ${this.token}` }})
|
||||
this.boxState = res.data.data
|
||||
},
|
||||
|
||||
|
@ -11,23 +11,29 @@
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol4">{{ myInviteCount }}</span>
|
||||
<img src="./../../assets/common/Invites.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Invites.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Invites</div>
|
||||
<div class="hover-tips">Successful invtations</div>
|
||||
<div class="hover-tips">Successful invitations</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol3">{{ myEnhanceCount }}</span>
|
||||
<img src="./../../assets/common/Icon_Boosting.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Boosting</div>
|
||||
<div class="hover-tips">Daily boosting reamaining times</div>
|
||||
<div class="hover-tips">Remaining Daily Boosts</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol2">{{ todayStepTicket }}</span>
|
||||
<img src="./../../assets/common/Icon_Explore.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Exploration</div>
|
||||
<div class="hover-tips">Explorations obtained</div>
|
||||
@ -35,21 +41,21 @@
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol1">{{ usesScore }}</span>
|
||||
<img src="./../../assets/common/Icon_Points.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Points.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Points</div>
|
||||
<div class="hover-tips">Explorations obtained</div>
|
||||
<div class="hover-tips">Explorations Earned</div>
|
||||
</li>
|
||||
<div class="touxiang">
|
||||
<UserImg :imgSrc="myTwitterAvatar" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="left-top-points-right">
|
||||
<img v-if="inWhiteList == 1" src="@/assets/common/wallet-yes.png" alt />
|
||||
<img v-else src="@/assets/common/wallet-no.png" alt />
|
||||
<div
|
||||
class="hover-tips"
|
||||
>Holder of the partner NFT collections will receive additional rewards</div>
|
||||
<img v-if="inWhiteList == 1" src="@/assets/common/wallet-yes.png" alt="">
|
||||
<img v-else src="@/assets/common/wallet-no.png" alt="">
|
||||
<div class="hover-tips">Partner NFT collection holders get extra rewards</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -69,16 +75,17 @@
|
||||
<p>Phase 2 Exploration Missions</p>
|
||||
</div>
|
||||
<div class="left-title-right">
|
||||
<p>Invite friends to earn</p>
|
||||
<p>
|
||||
more rewards
|
||||
<span class="tips" @click="ruleDialogVisible = true">!</span>
|
||||
</p>
|
||||
<div class="copy-btn" @click="copyLinkCode">
|
||||
<img src="./../../assets/common/Icon_Explore.png" alt /> Copy referral link
|
||||
<div class="rule" @click="ruleDialogVisible = true">
|
||||
<img src="@/assets/home/Icon_.png" alt="">
|
||||
</div>
|
||||
<div class="text">
|
||||
<p>Invite friends to earn</p>
|
||||
<p>more rewards</p>
|
||||
</div>
|
||||
<div class="copy-btn" @click="copyLinkCode"><img src="./../../assets/common/Icon_Explore.png" alt=""> Copy referral link</div>
|
||||
<div class="copy-see" @click="isLogin">
|
||||
View Invites
|
||||
</div>
|
||||
<div class="copy-see" @click="isLogin">View Invites</div>
|
||||
<div class="rule"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="explore">
|
||||
@ -95,11 +102,9 @@
|
||||
<img src="./../../assets/home/Icon_smile.png" alt />
|
||||
</div>
|
||||
<h4>How it works</h4>
|
||||
<div class="desc">
|
||||
Every step is filled with possibilities; every movement might begin a new chapter.
|
||||
<br />All on-chain activities are built on opBNB.
|
||||
<br />Click on the smiley face to view more details on Medium
|
||||
</div>
|
||||
<div
|
||||
class="desc"
|
||||
>Every step is filled with possibilities; every movement might begin a new chapter.<br />All on-chain activities are powered by opBNB. <br />Click the smiley face for more details on Medium.</div>
|
||||
</div>
|
||||
<div class="explore-desc-map" v-if="navIndex == 1">
|
||||
<li>
|
||||
@ -264,7 +269,7 @@
|
||||
<div class="calen-content">
|
||||
<Calen ref="renewCheck" :activityData="activityData" />
|
||||
<div class="rewards">
|
||||
<p>Cumulative Rewards</p>
|
||||
<p>Consecutive Sign-In Rewards</p>
|
||||
<div v-if="gameStateData.totalStat" class="rewards-list">
|
||||
<li v-for="(item, index) in gameStateData.totalStat" :key="index">
|
||||
<div class="center no-state" v-if="item.state == 0">
|
||||
@ -348,7 +353,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="rewards">
|
||||
<p>Bonus Rewards</p>
|
||||
<p>Accumulative Sign-In Rewards</p>
|
||||
<div v-if="gameStateData.seqStat" class="rewards-list">
|
||||
<li v-for="(item, index) in gameStateData.seqStat" :key="index">
|
||||
<div class="center no-state" v-if="item.state == 0">
|
||||
@ -526,15 +531,19 @@
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol4">{{ myInviteCount }}</span>
|
||||
<img src="./../../assets/common/Invites.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Invites.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Invites</div>
|
||||
<div class="hover-tips">Successful invtations</div>
|
||||
<div class="hover-tips">Successful invitations</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol3">{{ myEnhanceCount }}</span>
|
||||
<img src="./../../assets/common/Icon_Boosting.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Boosting</div>
|
||||
<div class="hover-tips">Daily boosting reamaining times</div>
|
||||
@ -542,7 +551,9 @@
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol2">{{ todayStepTicket }}</span>
|
||||
<img src="./../../assets/common/Icon_Explore.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Exploration</div>
|
||||
<div class="hover-tips">Explorations obtained</div>
|
||||
@ -550,21 +561,21 @@
|
||||
<li>
|
||||
<div class="top">
|
||||
<span class="textCol1">{{ usesScore }}</span>
|
||||
<img src="./../../assets/common/Icon_Points.png" alt />
|
||||
<div>
|
||||
<img src="./../../assets/common/Icon_Points.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btm">Points</div>
|
||||
<div class="hover-tips">Explorations obtained</div>
|
||||
<div class="hover-tips">Explorations Earned</div>
|
||||
</li>
|
||||
<div class="touxiang">
|
||||
<UserImg :imgSrc="myTwitterAvatar" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="left-top-points-right">
|
||||
<img v-if="inWhiteList == 1" src="@/assets/common/wallet-yes.png" alt />
|
||||
<img v-else src="@/assets/common/wallet-no.png" alt />
|
||||
<div
|
||||
class="hover-tips"
|
||||
>Holder of the partner NFT collections will receive additional rewards</div>
|
||||
<img v-if="inWhiteList == 1" src="@/assets/common/wallet-yes.png" alt="">
|
||||
<img v-else src="@/assets/common/wallet-no.png" alt="">
|
||||
<div class="hover-tips">Partner NFT collection holders get extra rewards</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -832,11 +843,9 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
if (this.$route.params.code) {
|
||||
if (this.$route.params.code.split("=")[0] == "box") {
|
||||
if(this.$route.params.code.split("=").split[1]) {
|
||||
this.helpDialogVisible = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
@ -847,21 +856,18 @@ export default {
|
||||
if (this.token) {
|
||||
this.getProgress();
|
||||
this.getGameStat();
|
||||
this.getUserState();
|
||||
this.myAddress = formatShowAddress(this.$store.state.user.address);
|
||||
this.myTwitterAvatar = this.userData.twitterAvatar;
|
||||
this.myScoreTotal = this.userData.scoreTotal;
|
||||
this.myInviteCount = this.userData.inviteCount;
|
||||
this.myEnhanceCount = this.userData.enhanceCount;
|
||||
this.inWhiteList = this.userData.inWhiteList;
|
||||
this.getUserState()
|
||||
this.myAddress = formatShowAddress(this.$store.state.user.address)
|
||||
this.myTwitterAvatar = this.userData.twitterAvatar
|
||||
this.myScoreTotal = this.userData.scoreTotal
|
||||
this.myInviteCount = this.userData.inviteCount
|
||||
this.myEnhanceCount = this.userData.enhanceCount
|
||||
this.inWhiteList = this.userData.inWhiteList
|
||||
if (this.$route.params.code) {
|
||||
if(this.$route.params.code.split("=")[0] == 'new') {
|
||||
if (this.$route.params.code.split("new=")[1] != "undefined") {
|
||||
this.helpConfirm()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
this.walletDialogVisible = true;
|
||||
}
|
||||
@ -876,7 +882,8 @@ export default {
|
||||
TwitterConnect: "Connect",
|
||||
TwitterFollow: "Follow",
|
||||
TwitterRetweet: "Retweet",
|
||||
DiscordJoin: "Join",
|
||||
TwitterLike: "Like",
|
||||
DiscordJoin: 'Join',
|
||||
DiscordConnect: "Connect"
|
||||
};
|
||||
this.activeList.length = 0;
|
||||
@ -923,14 +930,17 @@ export default {
|
||||
if (data.task == "TwitterConnect") {
|
||||
await this.loginTwitter(data.id);
|
||||
} else if(data.task == "TwitterFollow") {
|
||||
followTwitter(data.cfg.account);
|
||||
followTwitter(data.cfg.account)
|
||||
} else if(data.task == "TwitterLike") {
|
||||
window.open(`https://twitter.com/intent/like?tweet_id=${data.cfg.content}`, '_blank');
|
||||
} else if(data.task == "TwitterTweet") {
|
||||
followTwitter(data.cfg.content)
|
||||
} else if(data.task == "TwitterRetweet") {
|
||||
retweetTwitter(data.cfg.content);
|
||||
window.open(`https://twitter.com/intent/retweet?tweet_id=${data.cfg.content}`, '_blank');
|
||||
} else if(data.task == "DiscordJoin") {
|
||||
joinDiscord(data.cfg.account);
|
||||
}
|
||||
if (data.task == "DiscordConnect") {
|
||||
this.loginDiscord();
|
||||
joinDiscord(data.cfg.account)
|
||||
} else if (data.task == "DiscordConnect") {
|
||||
this.loginDiscord()
|
||||
}
|
||||
},
|
||||
// 手动检查任务
|
||||
@ -1105,15 +1115,15 @@ export default {
|
||||
|
||||
// 社媒任务奖励
|
||||
activityDialog(val) {
|
||||
this.awardData = val;
|
||||
this.eventName = "help_event";
|
||||
this.dialogTitle = "Congratulations";
|
||||
if (this.filteredBar == 100) {
|
||||
this.getGameStat();
|
||||
}
|
||||
this.getUserState();
|
||||
this.$refs.rankingData.renewData();
|
||||
this.ExploreDialogVisible = true;
|
||||
this.awardData = val
|
||||
this.eventName = 'help_event'
|
||||
this.dialogTitle = 'Congratulations'
|
||||
// if(this.filteredBar == 100) {
|
||||
this.getGameStat()
|
||||
// }
|
||||
this.getUserState()
|
||||
this.$refs.rankingData.renewData()
|
||||
this.ExploreDialogVisible = true
|
||||
},
|
||||
|
||||
// 签到奖励
|
||||
@ -1255,7 +1265,7 @@ export default {
|
||||
// 复制链接
|
||||
copyLinkCode() {
|
||||
if(this.token) {
|
||||
let text = this.userData.code;
|
||||
let text = this.userData.code
|
||||
let url = `${location.protocol}//${location.host}/home/new=${text}`;
|
||||
let oInput = document.createElement("input");
|
||||
oInput.value = url;
|
||||
@ -1272,8 +1282,8 @@ export default {
|
||||
|
||||
// 领取助力奖励 || 判断是否是新用户
|
||||
async helpConfirm() {
|
||||
if (this.$route.params.name != undefined) {
|
||||
let newInvite = this.$route.params.name.split("new=")[1];
|
||||
if(this.$route.params.code != undefined) {
|
||||
let newInvite = this.$route.params.code.split("=")[1];
|
||||
// let rtoken = await checkReCaptcha("invite_user");
|
||||
// let res = await this.$axios.get(process.env.VUE_APP_API_URL+"/api/activity/upload_invite_code", {
|
||||
// params: { code: newInvite, rtoken: rtoken },
|
||||
@ -1396,7 +1406,6 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.left-top-points-left {
|
||||
// width: 140px;
|
||||
display: flex;
|
||||
height: 50px;
|
||||
padding-right: 30px;
|
||||
@ -1416,7 +1425,8 @@ export default {
|
||||
width: 240px;
|
||||
height: 100px;
|
||||
line-height: 90px;
|
||||
background: url("@/assets/common/WL .png") no-repeat;
|
||||
font-size: 14px;
|
||||
background: url('@/assets/common/WL .png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
@ -1424,6 +1434,7 @@ export default {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
height: 16px;
|
||||
font-weight: 600;
|
||||
text-align: right;
|
||||
span {
|
||||
@ -1438,10 +1449,13 @@ export default {
|
||||
.textCol3 {
|
||||
color: #0095ff;
|
||||
}
|
||||
img {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
div {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.btm {
|
||||
@ -1473,6 +1487,12 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
li:nth-child(3) {
|
||||
img {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
}
|
||||
li:nth-child(4) {
|
||||
img {
|
||||
width: 12px;
|
||||
@ -1487,13 +1507,13 @@ export default {
|
||||
right: -20px;
|
||||
transform: translateY(-50%);
|
||||
div {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.left-top-points-right {
|
||||
margin-left: 30px;
|
||||
margin-left: 40px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
cursor: pointer;
|
||||
@ -1510,7 +1530,8 @@ export default {
|
||||
width: 590px;
|
||||
height: 120px;
|
||||
line-height: 110px;
|
||||
background: url("@/assets/common/WL .png") no-repeat;
|
||||
font-size: 14px;
|
||||
background: url('@/assets/common/WL .png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
&:hover {
|
||||
@ -1557,32 +1578,27 @@ export default {
|
||||
background: url("./../../assets/home/invite_box.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
border-radius: 20px;
|
||||
position: relative;
|
||||
.rule {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 20px;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.text {
|
||||
p {
|
||||
font-family: "Poppins-SemiBold";
|
||||
font-family: 'Poppins-SemiBold';
|
||||
font-size: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
margin-left: 10px;
|
||||
background: #201d27;
|
||||
border-radius: 50%;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.textCol {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
background-image: -webkit-linear-gradient(right, #d1a158, #a154ff);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
.copy-btn {
|
||||
font-size: 14px;
|
||||
background: url("./../../assets/home/button_copy.png") no-repeat;
|
||||
@ -1610,8 +1626,6 @@ export default {
|
||||
font-family: "Poppins-Regular";
|
||||
cursor: pointer;
|
||||
}
|
||||
.rule {
|
||||
}
|
||||
}
|
||||
}
|
||||
.explore {
|
||||
@ -2278,8 +2292,16 @@ export default {
|
||||
border-radius: 20px;
|
||||
margin-right: 20px;
|
||||
li {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 5px;
|
||||
height: 40px;
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
text-align: center;
|
||||
@ -2290,6 +2312,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.wallet {
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
@ -2537,11 +2560,9 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.left-top-points-left {
|
||||
// width: 140px;
|
||||
display: flex;
|
||||
height: 50px;
|
||||
align-items: center;
|
||||
background: url("@/assets/common/User-bar.png") no-repeat;
|
||||
background: url('@/assets/common/User-bar.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
position: relative;
|
||||
padding-right: 30px;
|
||||
@ -2557,7 +2578,8 @@ export default {
|
||||
width: 240px;
|
||||
height: 100px;
|
||||
line-height: 90px;
|
||||
background: url("@/assets/common/WL .png") no-repeat;
|
||||
font-size: 14px;
|
||||
background: url('@/assets/common/WL .png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
@ -2565,6 +2587,7 @@ export default {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
height: 16px;
|
||||
font-weight: 600;
|
||||
text-align: right;
|
||||
span {
|
||||
@ -2579,10 +2602,17 @@ export default {
|
||||
.textCol3 {
|
||||
color: #0095ff;
|
||||
}
|
||||
img {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
div {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
// img {
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
// }
|
||||
}
|
||||
}
|
||||
.btm {
|
||||
@ -2614,6 +2644,16 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
li:nth-child(3) {
|
||||
.top {
|
||||
div {
|
||||
img {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
li:nth-child(4) {
|
||||
img {
|
||||
width: 12px;
|
||||
@ -2628,13 +2668,13 @@ export default {
|
||||
right: -20px;
|
||||
transform: translateY(-50%);
|
||||
div {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.left-top-points-right {
|
||||
margin-left: 30px;
|
||||
margin-left: 40px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
cursor: pointer;
|
||||
@ -2651,7 +2691,8 @@ export default {
|
||||
width: 590px;
|
||||
height: 120px;
|
||||
line-height: 110px;
|
||||
background: url("@/assets/common/WL .png") no-repeat;
|
||||
font-size: 14px;
|
||||
background: url('@/assets/common/WL .png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
&:hover {
|
||||
@ -2713,8 +2754,16 @@ export default {
|
||||
border-radius: 20px;
|
||||
margin-right: 20px;
|
||||
li {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 5px;
|
||||
height: 40px;
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
text-align: center;
|
||||
@ -2725,6 +2774,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.wallet {
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="ranking">
|
||||
<div class="ranking-header">
|
||||
{{ activityName }}
|
||||
Hill's Treasure Hunt
|
||||
</div>
|
||||
<div class="ranking-content">
|
||||
<div class="ranking-content-left">
|
||||
@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<div class="list-btm" v-if="token">
|
||||
<div class="ranking" v-if="usesRank == '-'">{{ usesRank }}</div>
|
||||
<div class="ranking" v-else-if="usesRank >= 100">Not in the top 100 yet</div>
|
||||
<div class="ranking" v-else-if="usesRank >= 100">Outside the Top 100</div>
|
||||
<div class="ranking" v-else>{{ usesRank+1 }}</div>
|
||||
</div>
|
||||
<div class="list-btm" v-else>
|
||||
@ -207,7 +207,7 @@ export default {
|
||||
myScoreTotal: 0,
|
||||
myRankTotal: '-',
|
||||
historyDialogVisible: false,
|
||||
logPageSize: 6,
|
||||
logPageSize: 8,
|
||||
logCurrentPage: 1,
|
||||
}
|
||||
},
|
||||
|
@ -11,13 +11,11 @@
|
||||
<div class="content">
|
||||
<div class="points-title">Invitation Rules</div>
|
||||
<div>
|
||||
After other users successfully bind their wallets through the link you shared,
|
||||
A successful invitation occurs when another user binds their wallet using your shared link.
|
||||
</div>
|
||||
<div>it is considered a successful invitation. </div>
|
||||
<div>
|
||||
Whenever they earn points (excluding the benefits from invitations),
|
||||
You'll receive a bonus equivalent to 10% of their earned points (invitation benefits excluded) every time they gain points.
|
||||
</div>
|
||||
<div>they will provide you with an additional 10% of the points earned Got it.</div>
|
||||
</div>
|
||||
<div class="btn" @click="ExploreDialog">Confirm</div>
|
||||
</el-dialog>
|
||||
|