去除log

This commit is contained in:
yuyongdong 2024-04-16 13:36:10 +08:00
parent 23a0ada9c0
commit 2f6cd711f1
15 changed files with 1 additions and 4237 deletions

View File

@ -32,7 +32,6 @@ export default {
this.beginCountdown();
} catch (err) {
console.log(err);
this.beginCountdown();
}
},

View File

@ -1,39 +0,0 @@
<template>
<div>{{ formatPrice(5000000000000) }}</div>
</template>
<script>
export default {
props: {
NubSize: Number
},
data() {
return {
format: '',
}
},
computed: {
fileSize() {
const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
let number = this.size;
let unitIndex = 0;
while (number >= 1024 && unitIndex < units.length - 1) {
number /= 1024;
unitIndex++;
}
return number.toFixed(2) + ' ' + units[unitIndex];
}
},
mounted() {
},
methods: {
},
}
</script>
<style>
</style>

View File

@ -36,9 +36,7 @@ export default {
localStorage.setItem("myAddress", address);
let chainId = await web3.eth.getChainId();
chainId = parseInt(chainId);
// console.log(chainId, "----");
const nonce = await loginNonce(address);
// console.log(nonce, "nonce-------------");
const nonceStr = `${nonce}|okx`;
const nonceEncrypt = hexToBase58(
aesEncrypt(nonceStr, "uaw_activity")
@ -62,7 +60,6 @@ export default {
signature,
this.activity
);
console.log(resLogin.errcode,'61')
if (!resLogin.errcode) {
new GlobalData().token = resLogin.data.token;
this.token = resLogin.data.token;
@ -71,12 +68,10 @@ export default {
`${this.TOKEN_KEY}+ ${address}`,
resLogin.data.token
);
// console.log(resLogin.data.token);
// console.log(parseTokenData(resLogin.data.token),'------------------');
this.getUserState(resLogin.data.token)
}
} else {
console.log("Please install the MetaMask plugin");
console.info("Please install the MetaMask plugin");
}
},
@ -92,7 +87,6 @@ export default {
logOut() {
let NewTime = new Date()
console.log(NewTime,'------NewTime');
}
}
}

View File

@ -25,7 +25,6 @@ export default {
mounted() {},
methods: {
handleCurrentChange(val) {
console.log(val)
this.currentPage = val
this.$emit("onChangePage", val);
},

View File

@ -25,7 +25,6 @@ export default {
mounted() {},
methods: {
handleCurrentChange(val) {
console.log(val)
this.currentPage = val
this.$emit("onChangePage", val);
},

View File

@ -87,7 +87,6 @@ export default {
//
async getWalletConnected() {
await this.$store.dispatch('user/login', this.activity)
console.log(this.$store.state.wallet.address)
await this.$store.dispatch('user/fetchUserState')
location.reload()
},
@ -100,18 +99,15 @@ export default {
async isWallet1() {
let res = await new Wallet().isWalletConnected()
console.log('isWalletConnected' ,res)
},
// token
setCookie(exdays) {
setToken('1')
console.log(getToken())
return
},
//cookie
getCookie() {
console.log(document.cookie,'document.cookie-------------------------------------------------------')
// if (document.cookie.length > 0) {
// var arr = document.cookie.split("; "); //
// for (var i = 0; i < arr.length; i++) {

View File

@ -2,31 +2,8 @@
<div class="home">
<div class="carousel">
<Home />
<!-- <Zillionaire ref="zillionaireRef" v-model="currentIndex" /> -->
<!-- <div class="swiper-container" ref="mySwiper" @slideChange="handleSlideChange">
<div class="swiper-wrapper">
<div class="swiper-slide">
<Home />
</div>
<div class="swiper-slide">
<Bonus @click="dialogVisible = true" />
</div>
<div class="swiper-slide">
<Ranking />
</div>
</div>
<div class="swiper-pagination"></div>
</div> -->
</div>
<!-- <Zillionaire ref="zillionaireRef" v-model="currentIndex" /> -->
<!-- <div class="navigation">
<li :style="`${bgCor};`" class @click="toSwiper(0)"></li>
<li @click="toSwiper(1)"></li>
<li @click="toSwiper(2)"></li>
</div> -->
<!-- 登录弹窗 -->
<WalletDialog class="wallet-dialog" :walletDialogVisible="walletDialogVisible" @closeDialog="closeDialog" />
</div>
@ -36,19 +13,13 @@
// @ is an alias to /src
// import HelloWorld from '@/components/HelloWorld.vue'
import Home from "./home/index.vue";
import Bonus from "./bonus/index.vue";
import Ranking from "./ranking/index.vue";
import WalletDialog from './../components/walletDialog/index.vue'
import { getToken } from "@/utils/cookies.js";
import Swiper from "swiper";
import "swiper/css/swiper.css";
export default {
name: "HomeView",
components: {
Home,
Bonus,
Ranking,
WalletDialog,
},
data() {
@ -57,12 +28,6 @@ export default {
};
},
computed: {
bgCor() {
// if(this.activeIndex == 1) {
// console.log(this.activeIndex)
// return `background: #87uy67`
// }
}
},
created() {},
mounted() {
@ -75,10 +40,6 @@ export default {
closeDialog() {
this.walletDialogVisible = false
},
handleSlideChange() {
const activeIndex = this.$refs.mySwiper.Swiper;
console.log(activeIndex, "-------------------------------");
}
}
};
</script>

View File

@ -1,422 +0,0 @@
<template>
<div class="bonus">
<div class="bonus-top">
<div class="bonus-records">
<div class="img-records">
<!-- <img src="" alt=""> -->
图片
</div>
<div class="records" @click="getRecords">
<i class="el-icon-tickets"></i>
</div>
<div class="dialog-records" v-if="recordsDialogVisible">
<div class="bonus-header">
Historical records
<span @click="recordsDialogVisible = false">
<i class="el-icon-circle-close"></i>
</span>
</div>
<div class="records-list">
<el-table :data="recordsList">
<template slot="empty">
<div>No Data</div>
</template>
<el-table-column prop="rank" label="Action" :width="80"></el-table-column>
<el-table-column label="Time" :width="180">
<template
slot-scope="scope"
>{{ scope.row.address.slice(0,4) }}{{ '……'+scope.row.address.slice(-4) }}</template>
</el-table-column>
<el-table-column prop="post" label="Points"></el-table-column>
</el-table>
</div>
</div>
</div>
<div class="bonus-box">
<p>Invite friends to Boost,Earn more rewards</p>
<div class="img-box">
<!-- <img src="" alt=""> -->
图片
</div>
</div>
<div class="bonus-boosting">
<h3>Boosting Records</h3>
<li v-for="(item, index) in boostingList" :key="index">
<div class="img-user">
<img src alt />
</div>
<div class="name">{{ item.nickname }}</div>
<div class="score">
+
<span>{{ item.score }}</span> Pts
</div>
</li>
</div>
</div>
<div class="bonus-content">
<div class="bonus-content-top">
<p>Invite friends to Boost</p>
<p>Earn more rewards</p>
<div class="box-amount">{{ boxData.bounsCount }}</div>
<div class="invite" @click="copyLink(boxData.shareCode)">
<p>Invite friends to Boost</p>
<p><i class="el-icon-link"></i></p>
</div>
</div>
<div class="bonus-content-btm">
<div class="turn-btn" @click="turnBox(boxData.id)">Turn ON</div>
<div class="turn-check">
<el-checkbox v-model="turn.check">
<span>Unlock the treasure will consume a small amount of</span>
</el-checkbox>
</div>
<!-- <p>Unlock the treasure will consume a small amount of</p> -->
</div>
</div>
<div class="bonus-btm">
<div class="turn-all-btn">Turn On All</div>
<div class="turn-list">
<li v-for="(item, index) in boxList" :key="index">
<div class="box-img">图片</div>
<div class="box-name">{{ item.level }}</div>
</li>
</div>
</div>
<!-- <el-dialog class="records-dialog" :visible.sync="recordsDialogVisible" :before-close="handleClose">
jkjkj
<br>
<br>
<br>
<br>
<br>
<br>
<br>llklklklklk
</el-dialog>-->
</div>
</template>
<script>
import { sendOpenChest } from './../../utils/chainapi.js'
import { getToken } from './../../utils/cookies.js'
export default {
data() {
return {
token: getToken(),
boxList: [],
boxData: {},
boostingList: [
{
level: 1, //
nickname: "用户昵称",
score: 100 //
},
{
level: 1, //
nickname: "用户昵称",
score: 100 //
},
{
level: 1, //
nickname: "用户昵称",
score: 100 //
}
],
recordsDialogVisible: false,
recordsList: [],
turn: {
check: false,
},
userData: [],
};
},
mounted() {
this.getBoosting();
this.getBoxList()
this.getOpenBox()
this.userData = JSON.parse(localStorage.getItem("userData"));
},
methods: {
//
async getHistorical(id) {
let res = await this.$axios
.post(
process.env.VUE_APP_API_URL+"/api/chest/enhance/list",
{ chestid: id },
{
headers: { Authorization: `Bearer ${this.token}` }
}
)
if(res.data.errcode == 0) {
this.boostingList = res.data.data
}
},
//
getBoosting() {
this.$axios
.get(process.env.VUE_APP_API_URL+"/api/activity/invite_list", {
params: "",
headers: { Authorization: `Bearer ${this.token}` }
})
.then(res => {
console.log('getBoosting',res.data);
// boostingList
});
},
getRecords() {
this.recordsDialogVisible = true;
},
//
copyLink(text) {
console.log(text)
let url = `${location.protocol}//${location.host}/home/new=${this.userData.code}/box=${text}/id=${this.boxList[0].id}`
let oInput = document.createElement("input");
oInput.value = url;
document.body.appendChild(oInput);
oInput.select();
document.execCommand("Copy");
oInput.className = "oInput";
oInput.style.display = "none";
this.$message.success("Copy succeeded");
},
//
async getBoxList() {
let res = await this.$axios
.get(process.env.VUE_APP_API_URL+"/api/chest/list", {
params: "",
headers: { Authorization: `Bearer ${this.token}` }
})
console.log('boxList', res.data.data)
if(res.data.errcode == 0) {
this.boxList = res.data.data
console.log('宝箱列表', this.boxList)
this.boxData = res.data.data[0]
this.getHistorical(this.boxList[0].id);
}
},
//
async getOpenBox() {
let res = await this.$axios.get(process.env.VUE_APP_API_URL+'/api/chest/open/history',{params: '',headers: { Authorization: `Bearer ${this.token}` }})
console.log('宝箱开启记录', res.data)
},
//
async turnBox(id) {
// const address = localStorage.getItem('address')
try{
// let res = await sendOpenChest(address,id)
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/chest/open',{chestId: id},{
headers: { Authorization: `Bearer ${this.token}` }
})
console.log('开宝箱', res)
} catch(e){
console.info(e)
}
}
}
};
</script>
<style lang="scss" scoped>
.bonus {
padding: 20px;
.bonus-top {
display: flex;
justify-content: flex-end;
.bonus-records {
width: 120px;
padding-right: 20px;
position: relative;
.img-records {
// text-align: right;
width: 80px;
height: 50px;
background: #4095e5;
margin-left: 40px;
}
.records {
text-align: left;
cursor: pointer;
}
.dialog-records {
width: 360px;
// height: 280px;
border: 2px solid #f0f0f0;
border-bottom: 0px;
position: absolute;
left: -300px;
.bonus-header {
color: #fff;
width: 100%;
height: 40px;
line-height: 40px;
background: #4095e5;
span {
display: inline-block;
position: absolute;
right: 20px;
color: #000;
font-size: 24px;
cursor: pointer;
text-align: right;
}
}
.records-list {
::v-deep .el-table {
thead {
color: #000;
}
.el-table__body-wrapper {
.el-table__empty-block {
.el-table__empty-text {
color: #000;
}
}
}
}
}
}
}
.bonus-box {
width: 400px;
height: 320px;
p {
font-size: 14px;
}
.img-box {
width: 360px;
height: 280px;
background: rgba(0, 0, 0, 0.5);
}
}
.bonus-boosting {
width: 280px;
min-height: 320px;
border: 2px solid #f0f0f0;
h3 {
background: #4095e5;
height: 40px;
line-height: 40px;
}
li {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 40px;
.img-user {
width: 30px;
height: 30px;
border-radius: 8px;
border: 1px solid #f0f0f0;
}
.name {
font-size: 16px;
}
.score {
color: #f59a23;
font-size: 14px;
}
}
}
}
.bonus-content {
.bonus-content-top {
width: 320px;
padding: 10px;
margin: 0 auto;
border: 1px solid #f0f0f0;
position: relative;
p {
font-size: 14px;
}
.box-amount {
font-size: 42px;
font-weight: 700;
}
.invite {
position: absolute;
top: 50%;
right: -137px;
transform: translateY(-50%);
padding: 10px;
background: #f59a23;
cursor: pointer;
p {
font-size: 12px;
}
}
}
.bonus-content-btm {
margin-bottom: 10px;
.turn-btn {
width: 120px;
height: 35px;
line-height: 35px;
margin: 15px auto;
background: #f59a23;
border-radius: 10px;
font-size: 16px;
font-weight: 700;
cursor: pointer;
}
.turn-check {
::v-deep .el-checkbox {
.el-checkbox__input {
.el-checkbox__inner {
border: 0px;
background: #4095e5;
border-radius: 50%;
&::after {
border: 0px;
}
}
}
.el-checkbox__label {
color: #000;
}
}
}
p {
font-size: 12px;
}
}
}
.bonus-btm {
width: 1080px;
height: 300px;
margin: 0 auto;
border: 2px solid #f0f0f0;
padding: 10px;
.turn-all-btn {
width: 120px;
height: 35px;
line-height: 35px;
background: #f59a23;
font-size: 14px;
font-weight: 600;
cursor: pointer;
}
.turn-list {
display: flex;
justify-content: space-evenly;
li {
.box-img {
width: 180px;
height: 220px;
border: 1px solid #f0f0f0;
}
.box-name {
margin-top: 20px;
}
}
}
}
.records-dialog {
position: absolute;
}
}
</style>

View File

@ -449,7 +449,6 @@ export default {
)
if(res.data.errcode == 0) {
this.boostingList = res.data.data
console.log('助力记录', this.boostingList)
}
},
@ -518,8 +517,6 @@ export default {
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/user/enhance/list', {},{headers: { Authorization: `Bearer ${this.token}` }})
if(res.data.errcode == 0){
this.myRecordsList = res.data.data
}else{
console.log('[getMyHistoricalLog error]',res)
}
},
//

View File

@ -39,7 +39,6 @@ export default {
}
},
mounted() {
console.log(this.activityData,this.userData)
this.generateMonth()
},
methods: {

View File

@ -1,999 +0,0 @@
<template>
<div class="cal_con">
<div class="cal_header">
<!-- 顶部左侧 -->
<div class="cal_header_left">
<div class="cal_header_left_top">
<span class="cal_h_time">{{ year }}</span>
</div>
<div class="cal_header_left_bottom">
<div class="cal_h_left">
<div class="cal_h_btn" @click="preYear">
<svg class="cal_h_l_icon">
<!-- 画线条 -->
<polyline
points="6,0 2,4 6,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
<!-- 画线条 -->
<polyline
points="10,0 6,4 10,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
</svg>
</div>
<div class="cal_h_btn" @click="preMonth">
<svg class="cal_h_l_icon">
<polyline
points="6,0 2,4 6,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
</svg>
</div>
</div>
<div class="cal_h_center">
<span class="cal_h_time">{{ month }}</span>
</div>
<div class="cal_h_right">
<div class="cal_h_btn" @click="nextMonth">
<svg class="cal_h_l_icon">
<polyline
points="2,0 8,4 2,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
</svg>
</div>
<div class="cal_h_btn" @click="nextYear">
<svg class="cal_h_l_icon">
<polyline
points="2,0 8,4 2,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
<polyline
points="6,0 12,4 6,8"
style="fill: none; stroke: #ffffff; stroke-width: 2"
/>
</svg>
</div>
</div>
</div>
</div>
<!-- 顶部右侧 -->
<div class="cal_header_right">
<div class="nameText">姓名:张三</div>
<div class="QingjiaText">请假:{{jobTime["请假"]}}h</div>
<div class="JiaBanText">加班:{{jobTime["加班"]}}h</div>
<div class="ChuCaiText">出差:{{jobTime["出差"]}}h</div>
<div class="YiChangText">异常考勤:{{jobTime["异常卡"]}}</div>
</div>
</div>
<div class="cal_month">
<!--日历表头 周一 周二 周三 周四 周五 周六 周日-->
<div class="cal_m_weeks">
<div v-for="w in weeks" :key="w" class="cal_m_weeks_cell">
{{ w }}
</div>
</div>
<!--日历表内容 -->
<div class="cal_m_days">
<!-- 第几行 -->
<div
v-for="(ds, index) in monthData"
:key="index"
class="cal_m_day_line"
>
<!-- 每行内容 -->
<div
v-for="d in ds"
:key="d.day"
class="cal_m_day_cell"
:style="{ color: getCellColor(d), background: getBgColor(d)}"
@mouseenter="mouseenter(d, $event)"
@mouseleave="mouseleave(d, $event)"
>
<div class="itemDay">{{ d.day }}</div>
<!-- {{ ds[index].date.Format("yyyy-MM-dd") }} -->
<!-- {{ d.date.Format("yyyy-MM-dd") }} -->
<slot :name="d.fullYear + '-' + d.month + '-' + d.day"></slot>
<!-- 未签到 -->
<div
v-if="
d.type == -1 &&
setDataList(d.date).typeName == '未签到'
"
class="ZhengChang"
>
<!-- <div class="ZhengChangTitle">未签到:{{setDataList(d.date).jobTime}}</div> -->
<div class="ZhengChangTitle">
<!-- <img src="./../../assets/img/flame/mark.png" alt=""> -->
</div>
<div class="ZhengChangDian">
<div></div>
<div></div>
<div></div>
</div>
</div>
<!-- 正常卡 -->
<div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '正常卡'
"
class="ZhengChang"
>
<div class="ZhengChangTitle">正常卡:{{setDataList(d.date).jobTime}}</div>
<!-- <div class="ZhengChangTitle"><img src="./../../assets/img/flame/mark.png" alt=""></div> -->
<div class="ZhengChangDian">
<div></div>
<div></div>
<div></div>
</div>
</div>
<!-- 请假 -->
<div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '请假'
"
class="Qingjia"
>
<!-- <div class="QingjiaTitle">请假:事假{{setDataList(d.date).jobTime}}</div> -->
<div class="QingjiaDian">
×
<!-- <div></div>
<div></div>
<div></div> -->
</div>
</div>
<!-- 加班 -->
<div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '加班'
"
class="JiaBan"
>
<!-- <div class="JiaBanTitle">加班:{{setDataList(d.date).jobTime}}h</div> -->
<div class="JiaBanDian">
<!-- <div></div>
<div></div>
<div></div> -->
</div>
</div>
<!-- 出差 -->
<!-- <div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '出差'
"
class="ChuChai"
@click="ss(index)"
>
<div class="ChuChaiTitle">出差{{setDataList(d.date).jobTime}}</div>
<div class="ChuChaiTitle"><img src="./../../assets/img/flame/mark.png" alt=""></div>
<div class="ChuChaiDian">
<div></div>
<div></div>
<div></div>
</div>
</div> -->
<!-- 异常卡 -->
<!-- <div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '异常卡'
"
class="YiChang"
@click="ss(index)"
>
<div class="YiChangTitle">异常卡{{setDataList(d.date).jobTime}}</div>
<div class="YiChangDian">
<div></div>
<div></div>
<div></div>
</div>
</div> -->
<!-- 假期 -->
<!-- <div
v-if="
d.type == 0 &&
setDataList(d.date).typeName == '假期'
"
class="JiaQi"
>
<div class="JiaQiTitle">假期{{setDataList(d.date).jobTime}}</div>
<div class="JiaQiDian">
<div>1</div>
<div></div>
<div></div>
</div>
</div> -->
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import {ref, reactive, onMounted, defineEmits} from "vue";
import axios from "axios";
import { getToken } from './../../utils/cookies.js'
const $emit = defineEmits(["enter", "leave", "changeMonth"])
const dataList = reactive({
datas: [
{
time: "2024-04-01",
// typeName: "",
jobTime: 8
},
{
time: "2024-04-02",
typeName: "请假",
jobTime: 0
},
{
time: "2024-04-03",
typeName: "请假",
jobTime: 8
},
{
time: "2024-04-12",
typeName: "加班",
jobTime: 4
},
{
time: "2024-04-13",
typeName: "出差",
jobTime: 14
},
{
time: "2024-04-14",
typeName: "异常卡",
jobTime: 8
},
{
time: "2024-04-22",
typeName: "未签到",
jobTime: 11
},
{
time: "2024-04-22",
typeName: "未签到",
jobTime: 11
},
{
time: "2024-04-23",
typeName: "未签到",
jobTime: 11
},
{
time: "2024-04-24",
typeName: "未签到",
jobTime: 11
}
],
})
let now = ref(new Date()) //Fri Jul 29 2022 09:57:33 GMT+0800 ()
let year = ref(0)
let month = ref(0)
let jobTime = ref([])
const weeks = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
let monthData = ref([]) //
let currentYear = ref(new Date().getFullYear()) //2024
let currentMonth = ref(new Date().getMonth() + 1) //4
let currentDay = ref(new Date().getDate()) //2
onMounted(() => {
setYearMonth(now.value);
generateMonth(now.value);
getJobTime()
getCheckInit()
})
function getJobTime(){
dataList.datas.forEach((item) => {
// check if animal type has already been added to newObj
if(!jobTime.value[item.typeName]){
// If it is the first time seeing this animal type
// we need to add title and points to prevent errors
jobTime.value[item.typeName] = {};
jobTime.value[item.typeName] = 0;
}
// add animal points to newObj for that animal type.
jobTime.value[item.typeName] += item.jobTime
})
}
//
// value'2022-07-09'
function setDataList(value) {
let object = {};
const date = dateFormat("YYYY-mm-dd", value)
dataList.datas.forEach((element) => {
if (element.time == date) {
object = element;
}
});
return object;
}
function setYearMonth(now) {
year.value = now.getFullYear();
month.value = now.getMonth() + 1;
}
//
function preYear() {
let n = now.value;
let date = new Date(
n.getFullYear() - 1,
n.getMonth(),
n.getDate(),
n.getHours(),
n.getMinutes(),
n.getSeconds(),
n.getMilliseconds()
);
setYearMonthInfos(date);
}
//
function preMonth() {
let n = now.value;
let date = new Date(
n.getFullYear(),
n.getMonth() - 1,
n.getDate(),
n.getHours(),
n.getMinutes(),
n.getSeconds(),
n.getMilliseconds()
);
setYearMonthInfos(date);
}
//
function nextYear() {
let n = now.value;
let date = new Date(
n.getFullYear() + 1,
n.getMonth(),
n.getDate(),
n.getHours(),
n.getMinutes(),
n.getSeconds(),
n.getMilliseconds()
);
setYearMonthInfos(date);
}
//
function nextMonth() {
let n = now.value;
let date = new Date(
n.getFullYear(),
n.getMonth() + 1,
n.getDate(),
n.getHours(),
n.getMinutes(),
n.getSeconds(),
n.getMilliseconds()
);
setYearMonthInfos(date);
}
//
function setYearMonthInfos(date) {
setYearMonth(date);
generateMonth(date);
now.value = date;
dateChange();
}
function generateMonth(date) {
date.setDate(1);
// 0 - 6 - 6
let weekStart = date.getDay();
let endDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);
let dayEnd = endDate.getDate();
// 0 - 6 - 6
let weeEnd = endDate.getDay();
let milsStart = date.getTime();
let dayMils = 24 * 60 * 60 * 1000;
let milsEnd = endDate.getTime() + dayMils;
let monthDatas = [];
let current;
//
for (let i = 1; i < weekStart; i++) {
current = new Date(milsStart - (weekStart - i) * dayMils);
monthDatas.push({
type: -1,
date: current,
fullYear: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate(),
});
}
//
for (let i = 0; i < dayEnd; i++) {
current = new Date(milsStart + i * dayMils);
monthDatas.push({
type: 0,
date: current,
fullYear: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate(),
});
}
//
for (let i = 0; i < 6 - weeEnd + 1; i++) {
current = new Date(milsEnd + i * dayMils);
monthDatas.push({
type: 1,
date: current,
fullYear: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate(),
});
}
monthData.value = [];
for (let i = 0; i < monthDatas.length; i++) {
let mi = i % 7;
if (mi == 0) {
monthData.value.push([]);
}
monthData.value[Math.floor(i / 7)].push(monthDatas[i]);
}
// 66
if (monthData.value.length <= 5) {
milsStart = current.getTime();
let lastLine = [];
for (let i = 1; i <= 7; i++) {
current = new Date(milsStart + i * dayMils);
lastLine.push({
type: 1,
date: current,
fullYear: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate(),
});
}
monthData.value.push(lastLine);
}
}
function getCellColor(d) {
if (
d.fullYear == currentYear.value &&
d.month == currentMonth.value &&
d.day == currentDay.value
) {
return "#000";
}
let color = d.type == -1 ? "#6C6E83" : d.type == 1 ? "#4b4752" : d.type == 0 ? "#fff" : ""
return color;
}
function getBgColor(d) {
if (
d.fullYear == currentYear.value &&
d.month == currentMonth.value &&
d.day == currentDay.value
) {
return "#38dedc";
}
let color = d.type == -1 ? "#050608" : d.type == 1 ? "#000" : "#221d2b";
return color;
}
function mouseenter(d, event) {
$emit("enter", event, d);
// document.getElementsByClassName('cal_m_day_cell').style('background-color','#000000')
}
function mouseleave(d, event) {
$emit("leave", event, d);
}
function dateChange() {
let fullYear = now.value.getFullYear();
let month = now.value.getMonth();
let startDay = new Date(fullYear, month, 1);
let endDay = new Date(fullYear, month + 1, 0, 23, 59, 59);
$emit("changeMonth", startDay, endDay);
}
function dateFormat(fmt, date) {
let ret;
const opt = {
"Y+": date.getFullYear().toString(), //
"m+": (date.getMonth() + 1).toString(), //
"d+": date.getDate().toString(), //
"H+": date.getHours().toString(), //
"M+": date.getMinutes().toString(), //
"S+": date.getSeconds().toString() //
//
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
}
}
return fmt;
}
//
async function getCheckInit(){
let token = getToken()
let res = await axios.get(`/api/user/checkin/list/1month`, {
params: "",
headers: { Authorization: `Bearer ${token}` }
})
let dataLength = res.data.data[0].day.substr(-2)
// console.log(dataLength,res.data.data,'')
// for(let i = 1; i < dataLength; i++) {
// // if(res.data.data[0].day.substr(-2))
// if((dataLength-i)<10) dataLength = "0" + dataLength
// console.log(dataLength-i,res.data.data[i],'---------------------------------')
// // dataList.datas[i].time = `${res.data.data[i].day.substr(0,4)}`+"-"+`${res.data.data[i].day.substr(4,2)}`+"-"+`${res.data.data[i].day.substr(-2)}`
// // dataList.datas[i]["typeName"] = ""
// }
console.log(res.data.data[0].day,res.data.data[res.data.data.length-1].day,dataList.datas)
console.log(await DateDiff(res.data.data[res.data.data.length-1].day,res.data.data[0].day))
}
async function DateDiff(sDate1, sDate2) {
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split('-');
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //yyyy-MM-dd
aDate = sDate2.split('-');
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //
console.log(aDate,oDate1,oDate2,iDays)
return iDays;
}
</script>
<style scoped lang="scss">
.cal_con {
box-sizing: border-box;
// width: 1020px; //*7+ 140*7+20+20
padding: 10px 20px 20px 20px;
-webkit-user-select: none; //
-moz-user-select: none; //
-ms-user-select: none; //
user-select: none; //
color: #000000;
// box-shadow: 0 2px 12px 0 #0000006e;
// background: #ffffff;
border-radius: 20px;
.cal_header {
width: 980px; //*7 140*7
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
display: none;
.cal_header_left {
display: flex;
flex-direction: column;
align-items: center;
.cal_header_left_top {
width: 122px;
height: 30px;
background: #109af9;
display: flex;
align-items: center;
justify-content: center;
.cal_h_time {
font-family: "Microsoft YaHei";
font-style: normal;
font-weight: 400;
font-size: 20px;
color: #ffffff;
}
}
.cal_header_left_bottom {
width: 122px;
height: 30px;
background: rgba(16, 154, 249, 0.6);
display: flex;
align-items: center;
justify-content: space-between;
.cal_h_left {
height: 100%;
display: flex;
.cal_h_btn {
height: 100%;
width: 24px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.cal_h_btn:hover {
background-color: #109af9;
}
.cal_h_l_icon {
height: 8px;
width: 12px;
margin: auto;
}
}
.cal_h_center {
.cal_h_time {
font-family: "Microsoft YaHei";
font-style: normal;
font-weight: 400;
font-size: 20px;
color: #ffffff;
}
}
.cal_h_right {
height: 100%;
display: flex;
.cal_h_btn {
height: 100%;
width: 24px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.cal_h_btn:hover {
background-color: #109af9;
}
.cal_h_l_icon {
height: 8px;
width: 12px;
margin: auto;
}
}
}
}
.cal_header_right {
// width: 1125px;
height: 43px;
font-family: "Microsoft YaHei";
font-style: normal;
font-weight: 400;
font-size: 20px;
line-height: 26px;
display: flex;
align-items: center;
justify-content: center;
.QingjiaText {
color: rgba(255, 199, 0, 1);
margin-left: 80px;
}
.JiaBanText {
color: rgba(36, 0, 255, 1);
margin-left: 80px;
}
.ChuCaiText {
color: rgba(255, 167, 40, 1);
margin-left: 80px;
}
.YiChangText {
color: rgba(240, 92, 39, 1);
margin-left: 80px;
}
}
}
.cal_month {
//
margin: 0 auto;
.cal_m_weeks {
display: flex;
justify-content: center;
.cal_m_weeks_cell {
box-sizing: border-box;
width: 45px;
height: 45px;
// font-weight: 600;
// font-size: 18px;
font-size: 14px;
// border-bottom: 1px solid #818182;
// border-right: 1px solid #818182;
margin-left: 10px;
display: flex;
align-items: center;
justify-content: center;
// color: #38DEDC;
color: #fff;
}
.cal_m_weeks_cell:last-child {
// border-right: 0px solid #818182;
}
}
//
.cal_m_days {
//
.cal_m_day_line {
display: flex;
justify-content: center;
//
.cal_m_day_cell {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
width: 45px;
height: 40px;
line-height: 40px;
// border-top: 1px solid #818182;
// border-right: 1px solid #818182;
margin-left: 10px;
margin-bottom: 10px;
box-sizing: border-box;
border-radius: 10px;
position: relative;
.itemDay {
width: 100%;
// height: 30px;
text-align: center;
font-style: normal;
font-weight: 400;
font-size: 14px;
text-align: center;
box-sizing: border-box;
}
}
.cal_m_day_cell:last-child {
// border-right: 0px solid #818182;
}
// -
// .cal_m_day_cell:hover {
// color: #409eff;
// }
}
}
}
}
//
.ZhengChang {
margin: 0px 0px 0px 8px;
// width: 120px;
// height: 35px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0px 10px;
// background: rgba(16, 154, 249, 0.2);
color: rgba(16, 154, 249, 1);
img {
width: 46px;
height: 44px;
}
.ZhengChangTitle {
display: flex;
align-items: center;
}
// .ZhengChangDian {
// div {
// width: 4px;
// height: 4px;
// margin-bottom: 2px;
// border-radius: 4px;
// background: rgba(16, 154, 249, 1);
// }
// }
}
.ZhengChang:hover {
transform: scale(1.1);
}
//
.Qingjia {
// margin: 0px 0px 0px 8px;
// width: 120px;
// height: 35px;
width: 100%;
height: 100%;
// border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
// padding: 0px 10px;
background: rgba(255, 199, 0, 0.2);
background: #ff5b5b;
color: rgba(255, 199, 0, 1);
position: absolute;
top: 0;
left: 0;
// .QingjiaTitle {
// }
.QingjiaDian {
div {
width: 4px;
height: 4px;
margin-bottom: 2px;
border-radius: 4px;
background: rgba(255, 199, 0, 1);
}
}
}
.Qingjia:hover {
transform: scale(1.1);
}
//
.JiaBan {
margin: 0px 0px 0px 8px;
width: 120px;
height: 35px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0px 10px;
background: rgba(36, 0, 255, 0.2);
color: rgba(36, 0, 255, 1);
// .JiaBanTitle {
// }
.JiaBanDian {
div {
width: 4px;
height: 4px;
margin-bottom: 2px;
border-radius: 4px;
background: rgba(36, 0, 255, 1);
}
}
}
.JiaBan:hover {
transform: scale(1.1);
}
//
.ChuChai {
margin: 0px 0px 0px 8px;
// width: 120px;
// height: 35px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0px 10px;
// background: rgba(255, 167, 40, 0.2);
color: #ffa728;
img {
width: 100%;
height: 100%;
}
.ChuChaiTitle {
display: flex;
align-items: center;
}
// .ChuChaiDian {
// div {
// width: 4px;
// height: 4px;
// margin-bottom: 2px;
// border-radius: 4px;
// background: #ffa728;
// }
// }
}
.ChuChai:hover {
transform: scale(1.1);
}
//
.YiChang {
margin: 0px 0px 0px 8px;
width: 120px;
height: 35px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0px 10px;
background: rgba(240, 92, 39, 0.2);
color: rgba(240, 92, 39, 1);
// .YiChangTitle {
// }
.YiChangDian {
div {
width: 4px;
height: 4px;
margin-bottom: 2px;
border-radius: 4px;
background: rgba(240, 92, 39, 1);
}
}
}
.YiChang:hover {
transform: scale(1.1);
}
//
.JiaQi {
margin: 0px 0px 0px 8px;
width: 120px;
height: 35px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0px 10px;
background: rgba(29, 209, 155, 0.2);
color: rgba(29, 209, 155, 1);
// .JiaQiTitle {
// }
.JiaQiDian {
div {
width: 4px;
height: 4px;
margin-bottom: 2px;
border-radius: 4px;
background: rgba(29, 209, 155, 1);
}
}
}
.JiaQi:hover {
transform: scale(1.1);
}
</style>

View File

@ -161,7 +161,6 @@ export default {
// headers: { Authorization: `Bearer ${this.token}` }
// });
let res = await apiUploadInviteCode(newInvite)
// console.log(' || ',res)
return
if (res.data.errcode == 0) {
this.isNewUser = 0

File diff suppressed because it is too large Load Diff

View File

@ -726,12 +726,6 @@ export default {
};
},
watch: {
activeList: {
handler(newVal) {
// console.log(newVal, "");
},
deep: true
}
},
computed: {
filteredBar() {
@ -791,7 +785,6 @@ export default {
await this.$axios
.get(process.env.VUE_APP_API_URL+`/api/activity/${this.activityId}`)
.then(res => {
// if (res.data.errcode == 0) {
this.activityName = res.data.data.name;
const actionTitles = {
TwitterConnect: "Connect",
@ -807,8 +800,6 @@ export default {
}
this.activityData = res.data.data
this.baseTasks = res.data.data.baseTasks
console.log(this.baseTasks, this.activityData)
// }
})
.catch(err => {
console.info(err);
@ -836,7 +827,6 @@ export default {
let res = await apiBeginActivity(data.id);
if(res.errcode == 0) {
await this.getProgress()
// console.log("", res, data);
}
}
@ -860,7 +850,6 @@ export default {
async getActivitrStatue(id) {
await apiCheckActivity(id);
await this.getProgress()
// console.log(res, "------------------");
},
async loginTwitter() {
// const _address = "0x8c10Ae04BF525734eaC00d5F7c062567461c207F";
@ -868,7 +857,6 @@ export default {
// const codeChallenge = crypto.randomUUID()
const codeChallenge = Date.now();
const address = this.$store.state.user.address;
// console.log('codeChallenge: ' + codeChallenge)
const redirectUri = "https://oauth-svr.cebggame.com/twitter/redirect_uri";
const state = btoa(`${address}|${codeChallenge}|${location.href}`);
const url = `https://twitter.com/i/oauth2/authorize?client_id=${clientId}&code_challenge=${codeChallenge}&code_challenge_method=plain&redirect_uri=${encodeURIComponent(
@ -877,7 +865,6 @@ export default {
state
)}`;
let newwin = window.open(url, "twitter connect");
console.log(newwin.closed);
var timer = setInterval(function() {
if (newwin.closed) {
clearInterval(timer);
@ -890,17 +877,13 @@ export default {
async loginDiscord() {
const _address = this.$store.state.user.address;
const codeChallenge = Date.now();
console.log(location.href);
const state = btoa(`${_address}|${codeChallenge}`);
console.log(state);
// const url = 'https://discord.com/api/oauth2/authorize?client_id=1116692240224501850&redirect_uri=http%3A%2F%2Flocalhost%3A3010%2Fdiscord%2Fredirect_uri&response_type=code&scope=guilds%20identify%20guilds.members.read'
const url = `https://discord.com/api/oauth2/authorize?client_id=1117759635269636096&redirect_uri=https%3A%2F%2Foauth-svr.cebggame.com%2Fdiscord%2Fredirect_uri&response_type=code&scope=guilds%20identify%20guilds.members.read&state=${state}`;
console.log(url);
// location.href = url
// // Redirect the user to the Discord OAuth2 authorization page
let params = `scrollbars=yes,resizable=yes,status=no,location=no,toolbar=no,menubar=no,width=600,height=800,left=100,top=100`;
let newwin = window.open(url, "discord login", params);
console.log(newwin.closed);
var timer = setInterval(function() {
if (newwin.closed) {
clearInterval(timer);
@ -1134,7 +1117,6 @@ export default {
// let res = await apiUsercheckin();
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/user/checkin',{ },
{ headers: { Authorization: `Bearer ${this.token}` } })
// console.log(res.data.data,'')
return res.data.data
},
//
@ -1212,9 +1194,7 @@ export default {
// params: { code: newInvite, rtoken: rtoken },
// headers: { Authorization: `Bearer ${this.token}` }
// });
console.log("[code]", newInvite)
let res = await apiUploadInviteCode(newInvite)
// console.log(' || ---',res)
return
if (res.data.errcode == 0) {
this.isNewUser = 0
@ -1236,17 +1216,7 @@ export default {
//
async getUserState() {
console.log('update user state')
await this.$store.dispatch('user/fetchUserState')
// await this.$axios.get(process.env.VUE_APP_API_URL+'/api/user/state',{ params: '',
// headers: { Authorization: `Bearer ${this.token}` },
// }).then(res => {
// this.$set(this.userData)
// this.myScoreTotal = res.data.data.scoreTotal
// console.log('this.myScoreTotal',this.myScoreTotal)
// localStorage.setItem('userData', JSON.stringify(res.data.data))
// // this.userData = this.userData.scoreTotal
// })
},
// nav

View File

@ -1,535 +0,0 @@
<template>
<div class="ranking">
<div class="ranking-header">
活动名
</div>
<div class="ranking-content">
<div class="ranking-content-left">
<div class="ranking-content-left-points">
<div class="top">
<div>My Points</div>
<div class="details" @click="detailsDialog = true">
<span><i class="el-icon-tickets"></i></span>
</div>
<div class="details-content" v-show="detailsDialog">
<div class="details-header">
Points Details
<span>
<i @click="detailsDialog = false" class="el-icon-circle-close"></i>
</span>
</div>
<div class="details-list">
<el-table :data="detailsList">
<template slot="empty">
<div>No Data</div>
</template>
<el-table-column prop="action" label="Action" :width="80">Task</el-table-column>
<el-table-column label="Time" :width="190">
<template
slot-scope="scope"
>{{ scope.row.time*1000 | formatDate }}</template>
</el-table-column>
<!-- <el-table-column prop="address" label="Time" :width="190">
<template
slot-scope="scope"
>{{ scope.row.address.slice(0,4) }}{{ '……'+scope.row.address.slice(-4) }}</template>
</el-table-column> -->
<el-table-column label="Points">
<template
slot-scope="scope"
>{{ scope.row.count }} Pts</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<div class="list">
<li>
<p>Points tier</p>
<div class="list-btm">徽章</div>
<div class="points-tier">
<div class="points-tier-list" v-for="(item, index) in pointsTierList" :key="index">
<div class="imgSrc">{{ item.imgSrc }}</div>
<div>{{ item.name }}</div>
<div class="integral">{{ item.integral }}</div>
</div>
</div>
</li>
<li>
<p>Points</p>
<div class="list-btm"><span>{{ userData.scoreTotal }}</span></div>
</li>
<li>
<p>Ranking</p>
<div class="list-btm">排名</div>
</li>
</div>
</div>
<div class="ranking-content-left-social">
<div class="rule" @click="ruleDialog = true"><i class="el-icon-info"></i></div>
<div class="social-header">Social Points</div>
<h1>43</h1>
<p>Tag $CounterFire or @playCounterFire in</p>
<p>your tweets, or engage in others to</p>
<p>earn social points automatically</p>
<p>every week!</p>
<div class="rule-dialog" v-if="ruleDialog">
<div class="rule-header">规则说明 <span @click="ruleDialog = false"><i class="el-icon-error"></i></span></div>
<div class="rule-content">
<p>ssssssssssss</p>
</div>
</div>
</div>
<div class="ranking-content-left-forward">
<div class="forward-list">
<li>
<div class="forward-list-item-top">
<div class="user-img">头像</div>
<div>userName</div>
</div>
<div class="forward-list-item-btm">84132</div>
</li>
<li>
<div class="forward-list-item-top">
<div class="user-img">头像</div>
<!-- <div>{{ rankingTableData[0].nickname.slice(0,4) }}{{ '…'+rankingTableData[0].nickname.slice(-4) }}</div> -->
<div>{{ rankingTableData[0].nickname }}</div>
</div>
<div class="forward-list-item-btm">{{ rankingTableData[0].score }}</div>
</li>
<li>
<div class="forward-list-item-top">
<div class="user-img">头像</div>
<div>userName</div>
</div>
<div class="forward-list-item-btm">74111</div>
</li>
</div>
</div>
</div>
<div class="ranking-content-right">
<div class="ranking-content-right-list">
<el-table
:data="rankingTableData"
style="width: 100%">
<el-table-column
prop="rank"
label="Ranking">
</el-table-column>
<el-table-column
prop="nickname"
label="user name">
<template
slot-scope="scope"
>
<!-- {{ scope.row.nickname.slice(0,4) }}{{ '…'+scope.row.nickname.slice(-4) }}</template> -->
{{ scope.row.nickname }}</template>
</el-table-column>
<el-table-column
prop="level"
label="Points tier">
</el-table-column>
<el-table-column
prop="score"
label="Points">
</el-table-column>
</el-table>
</div>
<div class="ranking-content-right-pagination">
<Pagination />
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from './../../components/pagination.vue';
import { getToken } from './../../utils/cookies.js'
export default {
components: {
Pagination,
},
data() {
return {
token: getToken(),
pointsTierList: [
{
imgSrc: '图片',
name: '黄铜',
integral: '0-100',
},
{
imgSrc: '图片',
name: '白银',
integral: '101-300',
},
{
imgSrc: '图片',
name: '黄金',
integral: '301-700',
},
{
imgSrc: '图片',
name: '白金',
integral: '701-1000',
},
{
imgSrc: '图片',
name: '钻石',
integral: '1001-1500',
},
{
imgSrc: '图片',
name: '大师',
integral: '1501-2000',
},
{
imgSrc: '图片',
name: '宗师',
integral: '2001-3000',
},
{
imgSrc: '图片',
name: '王者',
integral: '3001+',
}
],
detailsDialog: false,
detailsList: [
{
action: 'Task',
time: '2024-03-08 12:59:37',
pts: '90'
}
],
ruleDialog: false,
rankingTableData: [
{
ranking: '1',
username: 'Username',
tier: 1,
pts: '955517'
},
{
ranking: '2',
username: 'Username',
tier: 1,
pts: '921115'
},
{
ranking: '3',
username: 'Username',
tier: 1,
pts: '841111'
},
{
ranking: '4',
username: 'Username',
tier: 1,
pts: '841111'
}
],
userData: [
{
scoreTotal: '0'
}
]
}
},
mounted() {
this.getLeaderBoard()
// if(this.token) {
// this.getUserState()
this.userData = JSON.parse(localStorage.getItem("userData"));
this.getMyIntegralList()
// }
},
methods: {
//
async getMyIntegralList() {
let res = await this.$axios.get(process.env.VUE_APP_API_URL+`/api/user/checkin/list/all`,{ params: '',
headers: { Authorization: `Bearer ${this.token}` },
})
this.detailsList = res.data.data
},
//
async getLeaderBoard () {
let res = await this.$axios.get(process.env.VUE_APP_API_URL+`/api/activity/leaderboard/uaw_activity/0`)
console.log(res.data.data)
this.rankingTableData = res.data.data
},
//
getUserState() {
this.$axios.get(process.env.VUE_APP_API_URL+'/api/user/state',{ params: '',
headers: { Authorization: `Bearer ${this.token}` },
}).then(res => {
this.userData = res.data.data
console.log(this.userData)
localStorage.setItem('userData', JSON.stringify(res.data.data))
})
},
},
}
</script>
<style lang="scss" scoped>
.ranking {
padding: 20px;
.ranking-header {
height: 40px;
line-height: 40px;
text-align: left;
}
.ranking-content {
display: flex;
.ranking-content-left {
width: 60%;
.ranking-content-left-points {
width: 90%;
margin: 0 auto;
padding: 10px;
border: 1px solid #f0f0f0;
.top {
display: flex;
justify-content: space-between;
position: relative;
div {
font-size: 18px;
font-weight: 700;
span {
font-size: 36px;
cursor: pointer;
}
}
.details-content {
position: absolute;
top: 40px;
right: 0px;
padding: 10px;
z-index: 9;
background: #fff;
border: 1px solid #f0f0f0;
.details-header {
height: 35px;
line-height: 35px;
span {
display: inline-block;
position: absolute;
top: 10px;
right: 20px;
z-index: 999;
}
}
.details-list {
::v-deep .el-table {
thead {
color: #000;
}
.el-table__body-wrapper {
.el-table__empty-block {
.el-table__empty-text {
color: #000;
}
}
}
.el-table__cell {
color: #000;
border: 0px;
}
&::before {
background: none;
}
}
}
}
}
.list {
display: flex;
justify-content: space-evenly;
li {
position: relative;
p {
font-weight: 700;
margin-bottom: 10px;
}
.list-btm {
height: 60px;
span {
font-size: 28px;
color: #6fb5d4;
}
}
.points-tier {
position: absolute;
top: 60px;
left: 50%;
transform: translateX(-50%);
display: none;
width: 200px;
border: 2px solid #f0f0f0;
padding: 0 10px;
z-index: 9999;
font-size: 14px;
background: #fff;
.points-tier-list {
display: flex;
justify-content: space-evenly;
align-items: center;
width: 100%;
.imgSrc {
width: 40px;
height: 40px;
line-height: 40px;
}
.integral {
width: 80px;
}
}
}
}
li:nth-child(1) {
cursor: pointer;
&:hover {
.points-tier {
display: block;
}
}
}
}
}
.ranking-content-left-social {
position: relative;
width: 80%;
margin: 10px auto;
padding: 10px;
border: 1px solid #f0f0f0;
.rule {
position: absolute;
top: 10px;
right: 10px;
cursor: pointer;
}
.social-header {
height: 30px;
line-height: 30px;
font-weight: 700;
font-size: 18px;
}
h1 {
font-size: 36px;
color: #00bfbf;
}
p {
font-size: 14px;
font-weight: 700;
}
.rule-dialog {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
height: 80%;
z-index: 99;
background: #fff;
border: 1px solid #f0f0f0;
.rule-header {
height: 30px;
line-height: 30px;
border-bottom: 1px solid #f0f0f0;
span {
display: inline-block;
position: absolute;
top: 0px;
right: 10px;
cursor: pointer;
}
}
.rule-content {
padding: 20px;
p {
text-align: left;
}
}
}
}
.ranking-content-left-forward {
width: 70%;
height: 400px;
background: rgba(0,0,0,.5);
margin: 0 auto;
padding: 10px;
.forward-list {
display: flex;
justify-content: space-evenly;
li {
width: 120px;
height: 70px;
padding: 10px;
margin-top: 50px;
background: #fff;
box-sizing: content-box;
.forward-list-item-top {
display: flex;
align-items: flex-end;
font-size: 12px;
.user-img {
width: 30px;
height: 40px;
border: 1px solid #f0f0f0;
}
}
.forward-list-item-btm {
font-weight: 700;
font-size: 24px;
color: #f59a23;
}
}
li:nth-child(2) {
margin: 0;
}
}
}
}
.ranking-content-right {
width: 40%;
border: 1px solid #f0f0f0;
position: relative;
.ranking-content-right-list {
::v-deep .el-table {
thead {
color: #000;
background: #d7d7d7;
}
.el-table__body-wrapper {
.el-table__empty-block {
.el-table__empty-text {
color: #000;
}
}
}
th.el-table__cell {
background: #d7d7d7;
}
.el-table__cell {
color: #000;
border: 0px;
}
&::before {
background: none;
}
}
}
.ranking-content-right-pagination {
position: absolute;
left: 50%;
bottom: 20px;
transform: translateX(-50%);
}
}
}
}
</style>