Merge branch '240416' into nft-cooperation-240418

This commit is contained in:
yuyongdong 2024-04-17 13:07:52 +08:00
commit 87c1ee2c7f
23 changed files with 2420 additions and 176 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
public/src/img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View 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

View 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"
}

View File

@ -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) {

View File

@ -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>

View File

@ -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

File diff suppressed because it is too large Load Diff

View 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",
},

View File

@ -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"

View File

@ -108,10 +108,17 @@ export default {
this.isLoading = false
cc.mainAnim.setCurrPos(getTotalUsed)
cc.mainAnim.setData(step)
let stepTimeId = setInterval(() => {
this.$emit('awardDialog', data)
clearInterval(stepTimeId)
},step*2000)
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)
}

View File

@ -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
},

View File

@ -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,9 +843,7 @@ 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;
}
this.helpDialogVisible = true;
}
}
});
@ -847,20 +856,17 @@ 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()
}
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;
@ -922,15 +929,18 @@ export default {
if (data.task == "TwitterConnect") {
await this.loginTwitter(data.id);
} else if (data.task == "TwitterFollow") {
followTwitter(data.cfg.account);
} else if (data.task == "TwitterRetweet") {
retweetTwitter(data.cfg.content);
} else if (data.task == "DiscordJoin") {
joinDiscord(data.cfg.account);
}
if (data.task == "DiscordConnect") {
this.loginDiscord();
} else if(data.task == "TwitterFollow") {
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") {
window.open(`https://twitter.com/intent/retweet?tweet_id=${data.cfg.content}`, '_blank');
} else if(data.task == "DiscordJoin") {
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
},
//
@ -1254,8 +1264,8 @@ export default {
//
copyLinkCode() {
if (this.token) {
let text = this.userData.code;
if(this.token) {
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,31 +1578,26 @@ export default {
background: url("./../../assets/home/invite_box.png") no-repeat;
background-size: 100% 100%;
border-radius: 20px;
p {
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;
position: relative;
.rule {
position: absolute;
top: 10px;
right: 20px;
width: 25px;
height: 25px;
img {
width: 100%;
height: 100%;
}
}
.textCol {
font-size: 28px;
font-weight: 700;
background-image: -webkit-linear-gradient(right, #d1a158, #a154ff);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
.text {
p {
font-family: 'Poppins-SemiBold';
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
}
}
.copy-btn {
font-size: 14px;
@ -1610,8 +1626,6 @@ export default {
font-family: "Poppins-Regular";
cursor: pointer;
}
.rule {
}
}
}
.explore {
@ -2278,14 +2292,23 @@ export default {
border-radius: 20px;
margin-right: 20px;
li {
display: flex;
align-items: center;
margin: 0 5px;
div {
width: 16px;
height: 15px;
text-align: center;
img {
width: 100%;
height: 100%;
height: 40px;
a {
display: flex;
align-items: center;
div {
display: flex;
align-items: center;
width: 16px;
height: 15px;
text-align: center;
img {
width: 100%;
height: 100%;
}
}
}
}
@ -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,14 +2754,23 @@ export default {
border-radius: 20px;
margin-right: 20px;
li {
display: flex;
align-items: center;
margin: 0 5px;
div {
width: 16px;
height: 15px;
text-align: center;
img {
width: 100%;
height: 100%;
height: 40px;
a {
display: flex;
align-items: center;
div {
display: flex;
align-items: center;
width: 16px;
height: 15px;
text-align: center;
img {
width: 100%;
height: 100%;
}
}
}
}

View File

@ -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,
}
},

View File

@ -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>