修改第一版bug
BIN
src/assets/common/Icon_explore0.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/common/Progress bar bg.png
Normal file
After Width: | Height: | Size: 512 B |
BIN
src/assets/common/Progress bar fill.png
Normal file
After Width: | Height: | Size: 986 B |
BIN
src/assets/common/User-bar.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
src/assets/common/WL .png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
src/assets/common/wallet-no.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
src/assets/common/wallet-yes.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
@ -151,6 +151,12 @@ export const apiUserState = async () => {
|
|||||||
return httpGet(url)
|
return httpGet(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 邀请新人
|
||||||
|
export const apiUploadInviteCode = async (code) => {
|
||||||
|
const url = `${API_BASE}/api/activity/upload_invite_code`;
|
||||||
|
return httpGet(url, { code })
|
||||||
|
}
|
||||||
|
|
||||||
// 探索状态
|
// 探索状态
|
||||||
export const apiGameStat = async () => {
|
export const apiGameStat = async () => {
|
||||||
const url = `${API_BASE}/api/game/stat`;
|
const url = `${API_BASE}/api/game/stat`;
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn" @click="ExploreDialog">Confirm</div>
|
<div class="btn" @click="ExploreDialog">Confirm</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="eventName == 'help_event' || eventName == 'help_event'">
|
<div v-else-if="eventName == 'help_event' || eventName == 'check_event'">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<div class="top-title"></div>
|
<div class="top-title"></div>
|
||||||
<div class="top-close" @click="ExploreDialog">
|
<div class="top-close" @click="ExploreDialog">
|
||||||
@ -89,13 +89,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="points-amount" v-if="awardData.ticket">
|
<div class="points-amount" v-if="awardData.ticket">
|
||||||
<div>Points</div>
|
<div>Explore</div>
|
||||||
<div>
|
<div>
|
||||||
<span>X {{ awardData.ticket }}</span>
|
<span>X {{ awardData.ticket }}</span>
|
||||||
<img src="./../../assets/common/Icon_Explore9.png" alt="">
|
<img src="./../../assets/common/Icon_Explore9.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="awardData.isNewUser == 0">Complete tasks to get more rewards</div>
|
<div>Complete tasks to get more rewards</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn" v-if="awardData.isNewUser == 0" @click="toComplete">To complete</div>
|
<div class="btn" v-if="awardData.isNewUser == 0" @click="toComplete">To complete</div>
|
||||||
<div class="btn" v-else @click="ExploreDialog">Confirm</div>
|
<div class="btn" v-else @click="ExploreDialog">Confirm</div>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 成功获得奖品弹窗 -->
|
<!-- -->
|
||||||
<el-dialog class="Explore-dialog" :visible.sync="helpDialogVisible" :modal="false" :before-close="helpDialog">
|
<el-dialog class="Explore-dialog" :visible.sync="helpDialogVisible" :modal="false" :before-close="helpDialog">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<div class="top-title">Boosting Records</div>
|
<div class="top-title">Boosting Records</div>
|
||||||
@ -47,10 +47,10 @@
|
|||||||
<div class="user-img" v-else>
|
<div class="user-img" v-else>
|
||||||
<img :src="item.imgSrc" alt="">
|
<img :src="item.imgSrc" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="user-name">User name</div>
|
<div class="user-name">{{ item.nickname }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="records">+8</div>
|
<div class="records">+{{ item.score }}</div>
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<img src="./../../assets/common/Icon_Points.png" alt="">
|
<img src="./../../assets/common/Icon_Points.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
@ -98,8 +98,8 @@ export default {
|
|||||||
this.boxId = this.$route.params.boxId.split("id=")[1];
|
this.boxId = this.$route.params.boxId.split("id=")[1];
|
||||||
this.boxCode = this.$route.params.box.split("box=")[1];
|
this.boxCode = this.$route.params.box.split("box=")[1];
|
||||||
// this.$axios.all([this.getBoxData(),this.getHelpBoxLog(),this.helpConfirm(),this.initBoxState(this.boxCode,this.boxId)])
|
// this.$axios.all([this.getBoxData(),this.getHelpBoxLog(),this.helpConfirm(),this.initBoxState(this.boxCode,this.boxId)])
|
||||||
if(this.token) {
|
|
||||||
this.getBoxData()
|
this.getBoxData()
|
||||||
|
if(this.token) {
|
||||||
this.getHelpBoxLog()
|
this.getHelpBoxLog()
|
||||||
this.helpConfirm()
|
this.helpConfirm()
|
||||||
this.initBoxState(this.boxCode,this.boxId)
|
this.initBoxState(this.boxCode,this.boxId)
|
||||||
@ -108,7 +108,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 宝箱信息接口
|
// 宝箱信息接口
|
||||||
async getBoxData() {
|
async getBoxData() {
|
||||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state', {chestId: '660a4b63de92bca95af2b714'},{})
|
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/enhance/state', {chestId: this.boxId},{})
|
||||||
this.boxData = res.data.data
|
this.boxData = res.data.data
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -157,37 +157,37 @@ export default {
|
|||||||
if(this.boxState.enhanced == 0) {
|
if(this.boxState.enhanced == 0) {
|
||||||
// 4、开始助力
|
// 4、开始助力
|
||||||
this.sendEnhanceReq(this.boxCode)
|
this.sendEnhanceReq(this.boxCode)
|
||||||
// try{
|
try{
|
||||||
// // 5、链上请求交互
|
// 5、链上请求交互
|
||||||
// let helpRes = await sendHelp(address, this.boxCode)
|
let helpRes = await sendHelp(address, this.boxCode)
|
||||||
// if(helpRes) {
|
if(helpRes) {
|
||||||
// // 6、轮询是否助力成功
|
// 6、轮询是否助力成功
|
||||||
// let serTimeId = setInterval(async () => {
|
let serTimeId = setInterval(async () => {
|
||||||
// let res = await this.$axios.post(
|
let res = await this.$axios.post(
|
||||||
// "/api/chest/enhance",
|
"/api/chest/enhance",
|
||||||
// { code: this.boxCode },
|
{ code: this.boxCode },
|
||||||
// { headers: { Authorization: `Bearer ${this.token}` } }
|
{ headers: { Authorization: `Bearer ${this.token}` } }
|
||||||
// );
|
);
|
||||||
// if (res.data.errcode == 0) {
|
if (res.data.errcode == 0) {
|
||||||
// // 7、判断是否是新用户
|
// 7、判断是否是新用户
|
||||||
// if(this.isNewUser == 0) {
|
if(this.isNewUser == 0) {
|
||||||
// // 8、关闭助力弹窗
|
// 8、关闭助力弹窗
|
||||||
// this.awardData = {...res.data.data, isNewUser: this.isNewUser}
|
this.awardData = {...res.data.data, isNewUser: this.isNewUser}
|
||||||
// this.$emit('awardDialog', this.awardData)
|
this.$emit('awardDialog', this.awardData)
|
||||||
// this.$emit('handleClose')
|
this.$emit('handleClose')
|
||||||
// } else {
|
} else {
|
||||||
// // 8、关闭助力弹窗
|
// 8、关闭助力弹窗
|
||||||
// this.awardData = {...res.data.data, isNewUser: this.isNewUser}
|
this.awardData = {...res.data.data, isNewUser: this.isNewUser}
|
||||||
// this.$emit('awardDialog', this.awardData)
|
this.$emit('awardDialog', this.awardData)
|
||||||
// this.$emit('handleClose')
|
this.$emit('handleClose')
|
||||||
// }
|
}
|
||||||
// clearInterval(serTimeId)
|
clearInterval(serTimeId)
|
||||||
// }
|
}
|
||||||
// }, 2000)
|
}, 2000)
|
||||||
// }
|
}
|
||||||
// } catch(e) {
|
} catch(e) {
|
||||||
// this.$message.error(e.message)
|
this.$message.error(e.message)
|
||||||
// }
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$emit('handleClose')
|
this.$emit('handleClose')
|
||||||
this.$message.error('Already helped this treasure chest')
|
this.$message.error('Already helped this treasure chest')
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
<img src="./../../assets/common/Invites.png" alt="">
|
<img src="./../../assets/common/Invites.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Invites</div>
|
<div class="btm">Invites</div>
|
||||||
|
<div class="hover-tips">Successful invtations</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
@ -21,25 +22,32 @@
|
|||||||
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Boosting</div>
|
<div class="btm">Boosting</div>
|
||||||
|
<div class="hover-tips">Daily boosting reamaining times</div>
|
||||||
</li>
|
</li>
|
||||||
<!-- <li v-if="navIndex == 1"> -->
|
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<span class="textCol2">{{ todayStepTicket }}</span>
|
<span class="textCol2">{{ todayStepTicket }}</span>
|
||||||
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Exploration</div>
|
<div class="btm">Exploration</div>
|
||||||
|
<div class="hover-tips">Explorations obtained</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<span class="textCol1">{{ myScoreTotal }}.000</span>
|
<span class="textCol1">{{ myScoreTotal }}</span>
|
||||||
<img src="./../../assets/common/Icon_Points.png" alt="">
|
<img src="./../../assets/common/Icon_Points.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Points</div>
|
<div class="btm">Points</div>
|
||||||
|
<div class="hover-tips">Explorations obtained</div>
|
||||||
</li>
|
</li>
|
||||||
|
<div class="touxiang">
|
||||||
|
<img src="./../../assets/home/Nav bar_character.png" alt />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="left-top-points-right">
|
<div class="left-top-points-right">
|
||||||
<img src="./../../assets/home/Nav bar_character.png" alt />
|
<img v-if="inWhiteList == 1" src="@/assets/common/wallet-no.png" alt="">
|
||||||
|
<img v-else src="@/assets/common/wallet-yes.png" alt="">
|
||||||
|
<div v-if="inWhiteList == 1" class="hover-tips">Holder of the partner NFT collections will receive additional rewards</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -155,15 +163,29 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="quest">
|
<div class="quest">
|
||||||
<div class="bar">
|
<div class="bar">
|
||||||
|
<div class="bar-left">
|
||||||
<div class="bar-top">
|
<div class="bar-top">
|
||||||
<div class="bar-top-left">12</div>
|
<div class="bar-top-left">Progress</div>
|
||||||
<div class="bar-top-right">34</div>
|
<div class="bar-top-right">
|
||||||
|
<div class="bar-top-jinDu" :style="{width: filteredBar+'%'}" ref="questPendingBg"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bar-btm">
|
<div class="bar-btm">
|
||||||
<p>*Complete tasks to win three exploration</p>
|
<p>*Complete tasks to win three exploration</p>
|
||||||
<p>attempts.</p>
|
<p>attempts.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bar-right">{{filteredBar}}
|
||||||
|
<div class="bar-no" v-if="filteredBar < 100">
|
||||||
|
<span>X 3 </span>
|
||||||
|
<img src="@/assets/common/Icon_explore0.png" alt="">
|
||||||
|
</div>
|
||||||
|
<div class="bar-yes" v-else>
|
||||||
|
<span>X 3 </span>
|
||||||
|
<img src="@/assets/common/Icon_Explore9.png" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="quest-list">
|
<div class="quest-list">
|
||||||
<li v-for="(item, index) in activeList" :key="index">
|
<li v-for="(item, index) in activeList" :key="index">
|
||||||
<div class="quest-item" @click="toPost(item, true)">
|
<div class="quest-item" @click="toPost(item, true)">
|
||||||
@ -383,37 +405,45 @@
|
|||||||
<span>Daily Check-in </span>+{{ gameStateData.todayTickets }}
|
<span>Daily Check-in </span>+{{ gameStateData.todayTickets }}
|
||||||
<img src="./../../assets/common/Icon_Daily.png" alt="">
|
<img src="./../../assets/common/Icon_Daily.png" alt="">
|
||||||
</li>
|
</li>
|
||||||
<li v-if="gameStateData.todayStat == 9">
|
<div class="check-yes" v-if="gameStateData.todayStat == 9">
|
||||||
<span>Daily Check-in </span>+{{ gameStateData.todayTickets }}
|
|
||||||
<img src="./../../assets/home/check-yes.png" alt="">
|
<img src="./../../assets/home/check-yes.png" alt="">
|
||||||
</li>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-right" v-if="navIndex == 2">
|
<div class="content-right" v-if="navIndex == 2">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="title-left">
|
<!-- <div class="title-left">
|
||||||
<div>Partner</div>
|
<div>Partner</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="quest">
|
<div class="quest">
|
||||||
<div class="quest-list">
|
<div class="partner-list">
|
||||||
<div ></div>
|
<div>
|
||||||
<li v-for="(item, index) in activeList" :key="index">
|
coming soon
|
||||||
<div class="content-right-left">
|
</div>
|
||||||
<!-- <div class="img-logo">
|
<!-- <div class="partner">
|
||||||
|
<div>Partner</div>
|
||||||
|
<div>Rewards</div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<li v-for="(item, index) in nftsList" :key="index">
|
||||||
|
<div class="quest-item">
|
||||||
|
<div class="content-rewards-left">
|
||||||
|
<div class="img-logo">
|
||||||
<img src="./../../assets/home/twitter.png" alt />
|
<img src="./../../assets/home/twitter.png" alt />
|
||||||
</div>
|
</div>
|
||||||
<div class="score">
|
|
||||||
<span>{{ item.score }} Pts</span>
|
|
||||||
</div>-->
|
|
||||||
<div class="desc">
|
<div class="desc">
|
||||||
<h3>{{ item.title }}</h3>
|
<h3>{{ item.collection }}</h3>
|
||||||
<p>{{ item.desc }}</p>
|
<p>{{ item.projectName }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="rewards">
|
||||||
|
<img src="@/assets/box/box01.png" alt="">
|
||||||
|
</div>
|
||||||
<div v-if="token != null" class="btn">
|
<div v-if="token != null" class="btn">
|
||||||
<div class="is-btn">
|
<div class="is-btn">
|
||||||
|
<div>Chick</div>
|
||||||
<div v-if="item.status == 0" class="started" @click="toPost(item)">{{ item.actionTitle }}</div>
|
<div v-if="item.status == 0" class="started" @click="toPost(item)">{{ item.actionTitle }}</div>
|
||||||
<CheckBtn v-if="item.status == 1" @stateupdate="toCheck" :dataid="item.id" time="10" title="Check" class="started">Check</CheckBtn>
|
<CheckBtn v-if="item.status == 1" @stateupdate="toCheck" :dataid="item.id" time="10" title="Check" class="started">Check</CheckBtn>
|
||||||
<div v-if="item.status == 2" class="claim" @click="getTaskClaim(item.id)">Claim</div>
|
<div v-if="item.status == 2" class="claim" @click="getTaskClaim(item.id)">Claim</div>
|
||||||
@ -421,7 +451,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='light-btn' v-else @click="onWalletLogin">Connect Wallet</div>
|
<div class='light-btn' v-else @click="onWalletLogin">Connect Wallet</div>
|
||||||
</li>
|
</div>
|
||||||
|
</li> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -443,6 +474,7 @@
|
|||||||
<img src="./../../assets/common/Invites.png" alt="">
|
<img src="./../../assets/common/Invites.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Invites</div>
|
<div class="btm">Invites</div>
|
||||||
|
<div class="hover-tips">Successful invtations</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
@ -450,25 +482,31 @@
|
|||||||
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
<img src="./../../assets/common/Icon_Boosting.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Boosting</div>
|
<div class="btm">Boosting</div>
|
||||||
|
<div class="hover-tips">Daily boosting reamaining times</div>
|
||||||
</li>
|
</li>
|
||||||
<!-- <li v-if="navIndex == 1"> -->
|
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<span class="textCol2">{{ todayStepTicket }}</span>
|
<span class="textCol2">{{ todayStepTicket }}</span>
|
||||||
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
<img src="./../../assets/common/Icon_Explore.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Exploration</div>
|
<div class="btm">Exploration</div>
|
||||||
|
<div class="hover-tips">Explorations obtained</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<span class="textCol1">{{ myScoreTotal }}.000</span>
|
<span class="textCol1">{{ myScoreTotal }}</span>
|
||||||
<img src="./../../assets/common/Icon_Points.png" alt="">
|
<img src="./../../assets/common/Icon_Points.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="btm">Points</div>
|
<div class="btm">Points</div>
|
||||||
|
<div class="hover-tips">Explorations obtained</div>
|
||||||
</li>
|
</li>
|
||||||
|
<div class="touxiang">
|
||||||
|
<img src="./../../assets/home/Nav bar_character.png" alt />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="left-top-points-right">
|
<div class="left-top-points-right">
|
||||||
<img src="./../../assets/home/Nav bar_character.png" alt />
|
<img src="@/assets/common/wallet-no.png" alt="">
|
||||||
|
<div class="hover-tips">Holder of the partner NFT collections will receive additional rewards</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -558,6 +596,7 @@ import LogDialog from './logDialog.vue'
|
|||||||
import { getToken } from '@/utils/cookies.js'
|
import { getToken } from '@/utils/cookies.js'
|
||||||
// import { getWalletAddress, isWalletConnected, linkWallet } from "@/wallet/index.js";
|
// import { getWalletAddress, isWalletConnected, linkWallet } from "@/wallet/index.js";
|
||||||
import {
|
import {
|
||||||
|
apiUploadInviteCode,
|
||||||
apiBeginActivity,
|
apiBeginActivity,
|
||||||
apiCheckActivity,
|
apiCheckActivity,
|
||||||
apiTaskClaim,
|
apiTaskClaim,
|
||||||
@ -597,7 +636,9 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
inWhiteList: 0,
|
||||||
activityData: {},
|
activityData: {},
|
||||||
|
baseTasks: [],
|
||||||
myScoreTotal: 0,
|
myScoreTotal: 0,
|
||||||
myInviteCount: 0,
|
myInviteCount: 0,
|
||||||
myEnhanceCount: 0,
|
myEnhanceCount: 0,
|
||||||
@ -668,6 +709,8 @@ export default {
|
|||||||
dialogTitle: '',
|
dialogTitle: '',
|
||||||
eventName: '',
|
eventName: '',
|
||||||
logDialogVisible: false,
|
logDialogVisible: false,
|
||||||
|
nftsList: [],
|
||||||
|
isNewUser: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -678,6 +721,15 @@ export default {
|
|||||||
deep: true
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
filteredBar() {
|
||||||
|
let aa = this.activeList.filter(item => this.baseTasks.includes(item.id))
|
||||||
|
let bb = aa.filter(item => item.status == 2 || 3).length
|
||||||
|
console.log(bb, aa, this.baseTasks, this.activeList,'-------------------------------------------------------------------------')
|
||||||
|
let cc = bb / this.baseTasks.length * 100
|
||||||
|
return cc
|
||||||
|
},
|
||||||
|
},
|
||||||
created() {
|
created() {
|
||||||
this.userData = JSON.parse(localStorage.getItem("userData"));
|
this.userData = JSON.parse(localStorage.getItem("userData"));
|
||||||
this.token = getToken();
|
this.token = getToken();
|
||||||
@ -705,6 +757,10 @@ export default {
|
|||||||
this.myScoreTotal = this.userData.scoreTotal
|
this.myScoreTotal = this.userData.scoreTotal
|
||||||
this.myInviteCount = this.userData.inviteCount
|
this.myInviteCount = this.userData.inviteCount
|
||||||
this.myEnhanceCount = this.userData.enhanceCount
|
this.myEnhanceCount = this.userData.enhanceCount
|
||||||
|
this.inWhiteList = this.userData.inWhiteList
|
||||||
|
if(this.$route.params.name) {
|
||||||
|
this.helpConfirm()
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.walletDialogVisible = true
|
this.walletDialogVisible = true
|
||||||
@ -730,6 +786,8 @@ export default {
|
|||||||
this.activeList.push(data)
|
this.activeList.push(data)
|
||||||
}
|
}
|
||||||
this.activityData = res.data.data
|
this.activityData = res.data.data
|
||||||
|
this.baseTasks = res.data.data.baseTasks
|
||||||
|
console.log(this.baseTasks, this.activityData)
|
||||||
// }
|
// }
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
@ -939,6 +997,7 @@ export default {
|
|||||||
|
|
||||||
// 社媒任务奖励
|
// 社媒任务奖励
|
||||||
activityDialog(val) {
|
activityDialog(val) {
|
||||||
|
console.log('社媒任务奖励',val)
|
||||||
this.awardData = val
|
this.awardData = val
|
||||||
this.eventName = 'help_event'
|
this.eventName = 'help_event'
|
||||||
this.dialogTitle = 'Congratulations'
|
this.dialogTitle = 'Congratulations'
|
||||||
@ -1082,6 +1141,7 @@ export default {
|
|||||||
async getNftList() {
|
async getNftList() {
|
||||||
let res = await this.$axios.get(process.env.VUE_APP_API_URL+'/api/partner/nfts')
|
let res = await this.$axios.get(process.env.VUE_APP_API_URL+'/api/partner/nfts')
|
||||||
console.log('apiNftList获取nft合作列表', res)
|
console.log('apiNftList获取nft合作列表', res)
|
||||||
|
this.nftsList = res.data.data
|
||||||
},
|
},
|
||||||
|
|
||||||
// 复制链接
|
// 复制链接
|
||||||
@ -1102,6 +1162,51 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 邀请新人
|
||||||
|
async getUploadInviteCode(code) {
|
||||||
|
await apiUploadInviteCode(code)
|
||||||
|
return
|
||||||
|
try {
|
||||||
|
let { errcode, errmsg, data } = apiUploadInviteCode(code)
|
||||||
|
if (errcode) {
|
||||||
|
if (errcode === 12) {
|
||||||
|
// 已领取, 给个提示就可以了
|
||||||
|
this.$message.error(errmsg)
|
||||||
|
} else if (errcode !== 14) {
|
||||||
|
// 状态不是等待链上确认的, 都提示错误
|
||||||
|
this.$message.error(errmsg)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(data?.status == 3) {
|
||||||
|
// alert(`领取成功, 获得积分: ${data.score}`)
|
||||||
|
// this.activityDialog({data, isNewUser: this.isNewUser})
|
||||||
|
localStorage.removeItem(storeageKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
this.$message.error(`claim task reward error: ${err}`)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 领取助力奖励 || 判断是否是新用户
|
||||||
|
async helpConfirm() {
|
||||||
|
if(this.$route.params.name != undefined) {
|
||||||
|
let newInvite = this.$route.params.name.split("new=")[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 },
|
||||||
|
headers: { Authorization: `Bearer ${this.token}` }
|
||||||
|
});
|
||||||
|
if (res.data.errcode == 0) {
|
||||||
|
this.isNewUser = 0
|
||||||
|
this.getUploadInviteCode(newInvite)
|
||||||
|
} else {
|
||||||
|
this.isNewUser = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
isLogin() {
|
isLogin() {
|
||||||
if(this.token) {
|
if(this.token) {
|
||||||
this.logDialogVisible = true
|
this.logDialogVisible = true
|
||||||
@ -1176,16 +1281,34 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.left-top-points {
|
.left-top-points {
|
||||||
background: #2d2738;
|
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
position: relative;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
.left-top-points-left {
|
.left-top-points-left {
|
||||||
// width: 140px;
|
// width: 140px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
height: 50px;
|
||||||
padding-right: 30px;
|
padding-right: 30px;
|
||||||
|
background: url('@/assets/common/User-bar.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
position: relative;
|
||||||
li {
|
li {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 5px 20px 5px 40px;
|
padding: 10px 20px 5px 40px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
.hover-tips {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
right: 0px;
|
||||||
|
width: 240px;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 90px;
|
||||||
|
background: url('@/assets/common/WL .png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
.top {
|
.top {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
@ -1215,6 +1338,11 @@ export default {
|
|||||||
color: #A8A5AC;
|
color: #A8A5AC;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
li:nth-child(1) {
|
li:nth-child(1) {
|
||||||
img {
|
img {
|
||||||
@ -1227,25 +1355,52 @@ export default {
|
|||||||
width: 13px;
|
width: 13px;
|
||||||
height: 13px;
|
height: 13px;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
li:nth-child(4) {
|
li:nth-child(4) {
|
||||||
img {
|
img {
|
||||||
width: 10px;
|
width: 12px;
|
||||||
height: 12px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
.touxiang {
|
||||||
.left-top-points-right {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
right: -20px;
|
right: -20px;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-top-points-right {
|
||||||
|
margin-left: 30px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
img {
|
img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.hover-tips {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
right: -60px;
|
||||||
|
width: 590px;
|
||||||
|
height: 120px;
|
||||||
|
line-height: 110px;
|
||||||
|
background: url('@/assets/common/WL .png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1512,22 +1667,75 @@ export default {
|
|||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
.bar {
|
.bar {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
.bar-left {
|
||||||
|
padding: 0 10px;
|
||||||
.bar-top {
|
.bar-top {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
.bar-top-left {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.bar-top-right {
|
||||||
|
width: 200px;
|
||||||
|
height: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
background: url('@/assets/common/Progress bar bg.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
.bar-top-jinDu {
|
||||||
|
width: 80%;
|
||||||
|
height: 8px;
|
||||||
|
background: url('@/assets/common/Progress bar fill.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.bar-btm {
|
.bar-btm {
|
||||||
font-size: 10px;
|
font-size: 12px;
|
||||||
color: #9950FD;
|
color: #9950FD;
|
||||||
p {
|
p {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.bar-right {
|
||||||
|
>div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.bar-no {
|
||||||
|
color: #4E475B;
|
||||||
|
}
|
||||||
|
.bar-yes {
|
||||||
|
color: #9950FD;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.quest-list {
|
.quest-list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 380px;
|
height: 320px;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
.partner {
|
||||||
|
display: flex;
|
||||||
|
height: 30px;
|
||||||
|
font-size: 14px;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
div:nth-child(1) {
|
||||||
|
width: 180px;
|
||||||
|
}
|
||||||
|
div:nth-child(2) {
|
||||||
|
width: 45px;
|
||||||
|
}
|
||||||
|
}
|
||||||
li:hover{
|
li:hover{
|
||||||
background-color: #27242e;
|
background-color: #27242e;
|
||||||
}
|
}
|
||||||
@ -1555,8 +1763,33 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.score {
|
.desc {
|
||||||
margin-left: 10px;
|
max-width: 240px;
|
||||||
|
margin: 0 5px;
|
||||||
|
h3 {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: 'Poppins-SemiBold';
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
font-family: 'Poppins-Light';
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content-rewards-left {
|
||||||
|
display: flex;
|
||||||
|
align-items: left;
|
||||||
|
width: 180px;
|
||||||
|
.img-logo {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
margin-right: 10px;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.desc {
|
.desc {
|
||||||
max-width: 240px;
|
max-width: 240px;
|
||||||
@ -1573,6 +1806,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.rewards {
|
||||||
|
width: 45px;
|
||||||
|
height: 40px;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
.btn {
|
.btn {
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
color: #000;
|
color: #000;
|
||||||
@ -1631,6 +1872,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.partner-list {
|
||||||
|
height: 380px;
|
||||||
|
line-height: 380px;
|
||||||
|
font-size: 54px;
|
||||||
|
font-family: "Anton-Regular";
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
::v-deep .quest-list::-webkit-scrollbar {
|
::v-deep .quest-list::-webkit-scrollbar {
|
||||||
width: 5px;
|
width: 5px;
|
||||||
}
|
}
|
||||||
@ -1693,8 +1941,7 @@ export default {
|
|||||||
.right-header {
|
.right-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 10px;
|
margin: 10px 50px 10px 0;
|
||||||
margin-top: 10px;
|
|
||||||
.right-header-left {
|
.right-header-left {
|
||||||
.right-header-nav {
|
.right-header-nav {
|
||||||
width: 160px;
|
width: 160px;
|
||||||
@ -1923,16 +2170,26 @@ export default {
|
|||||||
background: #fec25d;
|
background: #fec25d;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
span {
|
span {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
color: #000;
|
||||||
}
|
}
|
||||||
img {
|
img {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.check-yes {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.check-btm {
|
.check-btm {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
@ -1956,14 +2213,14 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: url('./../../assets/common/bg_p3.png') no-repeat;
|
background: url('./../../assets/common/bg_p3.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100% 100%;
|
||||||
.box-top {
|
.box-top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
// height: 100%;
|
// height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.left {
|
.left {
|
||||||
width: 60%;
|
width: 68%;
|
||||||
.left-top {
|
.left-top {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@ -1980,16 +2237,34 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.left-top-points {
|
.left-top-points {
|
||||||
background: #2d2738;
|
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
position: relative;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
.left-top-points-left {
|
.left-top-points-left {
|
||||||
// width: 140px;
|
// width: 140px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
height: 50px;
|
||||||
|
align-items: center;
|
||||||
|
background: url('@/assets/common/User-bar.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
position: relative;
|
||||||
padding-right: 30px;
|
padding-right: 30px;
|
||||||
li {
|
li {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 5px 20px 5px 40px;
|
padding: 10px 20px 5px 40px;
|
||||||
|
position: relative;
|
||||||
|
.hover-tips {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
right: 0px;
|
||||||
|
width: 240px;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 90px;
|
||||||
|
background: url('@/assets/common/WL .png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
.top {
|
.top {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
@ -2019,6 +2294,11 @@ export default {
|
|||||||
color: #A8A5AC;
|
color: #A8A5AC;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
li:nth-child(1) {
|
li:nth-child(1) {
|
||||||
img {
|
img {
|
||||||
@ -2031,31 +2311,58 @@ export default {
|
|||||||
width: 13px;
|
width: 13px;
|
||||||
height: 13px;
|
height: 13px;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
li:nth-child(4) {
|
li:nth-child(4) {
|
||||||
img {
|
img {
|
||||||
width: 10px;
|
width: 12px;
|
||||||
height: 12px;
|
height: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
.touxiang {
|
||||||
.left-top-points-right {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
right: -20px;
|
right: -20px;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-top-points-right {
|
||||||
|
margin-left: 30px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
img {
|
img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.hover-tips {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
right: -60px;
|
||||||
|
width: 590px;
|
||||||
|
height: 120px;
|
||||||
|
line-height: 110px;
|
||||||
|
background: url('@/assets/common/WL .png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
.hover-tips {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
width: 30%;
|
width: 28%;
|
||||||
padding: 20px 30px;
|
padding: 20px 30px;
|
||||||
.right-header {
|
.right-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -2155,8 +2462,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.nav-btm {
|
.nav-btm {
|
||||||
width: 380px;
|
// width: 380px;
|
||||||
|
|
||||||
margin: 10px auto;
|
margin: 10px auto;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
.nav {
|
.nav {
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
<el-table-column label=" Earnings">
|
<el-table-column label=" Earnings">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="points">
|
<div class="points">
|
||||||
<span>{{ scope.row.score }}</span>
|
<span>{{ scope.row.scoreInvite }}</span>
|
||||||
<!-- <img src="./../../assets/common/Icon_Points.png" alt=""> -->
|
<!-- <img src="./../../assets/common/Icon_Points.png" alt=""> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -95,6 +95,7 @@ export default {
|
|||||||
headers: { Authorization: `Bearer ${token}` }
|
headers: { Authorization: `Bearer ${token}` }
|
||||||
});
|
});
|
||||||
// ToDo
|
// ToDo
|
||||||
|
this.invitationList = res.data.data
|
||||||
console.log("我的邀请列表", res.data.data);
|
console.log("我的邀请列表", res.data.data);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="forward-list-item-top">
|
<div class="forward-list-item-top">
|
||||||
<div class="user-img">
|
<div class="user-img">
|
||||||
<img :src="rankingTableData[0].avatar" alt="">
|
<img :src="rankingTableData[1].avatar" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="forward-list-item-btm">
|
<div class="forward-list-item-btm">
|
||||||
|