去除log
This commit is contained in:
parent
23a0ada9c0
commit
2f6cd711f1
@ -32,7 +32,6 @@ export default {
|
|||||||
this.beginCountdown();
|
this.beginCountdown();
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
|
||||||
this.beginCountdown();
|
this.beginCountdown();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -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>
|
|
@ -36,9 +36,7 @@ export default {
|
|||||||
localStorage.setItem("myAddress", address);
|
localStorage.setItem("myAddress", address);
|
||||||
let chainId = await web3.eth.getChainId();
|
let chainId = await web3.eth.getChainId();
|
||||||
chainId = parseInt(chainId);
|
chainId = parseInt(chainId);
|
||||||
// console.log(chainId, "----");
|
|
||||||
const nonce = await loginNonce(address);
|
const nonce = await loginNonce(address);
|
||||||
// console.log(nonce, "nonce-------------");
|
|
||||||
const nonceStr = `${nonce}|okx`;
|
const nonceStr = `${nonce}|okx`;
|
||||||
const nonceEncrypt = hexToBase58(
|
const nonceEncrypt = hexToBase58(
|
||||||
aesEncrypt(nonceStr, "uaw_activity")
|
aesEncrypt(nonceStr, "uaw_activity")
|
||||||
@ -62,7 +60,6 @@ export default {
|
|||||||
signature,
|
signature,
|
||||||
this.activity
|
this.activity
|
||||||
);
|
);
|
||||||
console.log(resLogin.errcode,'61')
|
|
||||||
if (!resLogin.errcode) {
|
if (!resLogin.errcode) {
|
||||||
new GlobalData().token = resLogin.data.token;
|
new GlobalData().token = resLogin.data.token;
|
||||||
this.token = resLogin.data.token;
|
this.token = resLogin.data.token;
|
||||||
@ -71,12 +68,10 @@ export default {
|
|||||||
`${this.TOKEN_KEY}+ ${address}`,
|
`${this.TOKEN_KEY}+ ${address}`,
|
||||||
resLogin.data.token
|
resLogin.data.token
|
||||||
);
|
);
|
||||||
// console.log(resLogin.data.token);
|
|
||||||
// console.log(parseTokenData(resLogin.data.token),'------------------');
|
|
||||||
this.getUserState(resLogin.data.token)
|
this.getUserState(resLogin.data.token)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log("Please install the MetaMask plugin");
|
console.info("Please install the MetaMask plugin");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -92,7 +87,6 @@ export default {
|
|||||||
|
|
||||||
logOut() {
|
logOut() {
|
||||||
let NewTime = new Date()
|
let NewTime = new Date()
|
||||||
console.log(NewTime,'------NewTime');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,6 @@ export default {
|
|||||||
mounted() {},
|
mounted() {},
|
||||||
methods: {
|
methods: {
|
||||||
handleCurrentChange(val) {
|
handleCurrentChange(val) {
|
||||||
console.log(val)
|
|
||||||
this.currentPage = val
|
this.currentPage = val
|
||||||
this.$emit("onChangePage", val);
|
this.$emit("onChangePage", val);
|
||||||
},
|
},
|
||||||
|
@ -25,7 +25,6 @@ export default {
|
|||||||
mounted() {},
|
mounted() {},
|
||||||
methods: {
|
methods: {
|
||||||
handleCurrentChange(val) {
|
handleCurrentChange(val) {
|
||||||
console.log(val)
|
|
||||||
this.currentPage = val
|
this.currentPage = val
|
||||||
this.$emit("onChangePage", val);
|
this.$emit("onChangePage", val);
|
||||||
},
|
},
|
||||||
|
@ -87,7 +87,6 @@ export default {
|
|||||||
// 登录
|
// 登录
|
||||||
async getWalletConnected() {
|
async getWalletConnected() {
|
||||||
await this.$store.dispatch('user/login', this.activity)
|
await this.$store.dispatch('user/login', this.activity)
|
||||||
console.log(this.$store.state.wallet.address)
|
|
||||||
await this.$store.dispatch('user/fetchUserState')
|
await this.$store.dispatch('user/fetchUserState')
|
||||||
location.reload()
|
location.reload()
|
||||||
},
|
},
|
||||||
@ -100,18 +99,15 @@ export default {
|
|||||||
|
|
||||||
async isWallet1() {
|
async isWallet1() {
|
||||||
let res = await new Wallet().isWalletConnected()
|
let res = await new Wallet().isWalletConnected()
|
||||||
console.log('isWalletConnected' ,res)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 设置token过期
|
// 设置token过期
|
||||||
setCookie(exdays) {
|
setCookie(exdays) {
|
||||||
setToken('1')
|
setToken('1')
|
||||||
console.log(getToken())
|
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
//读取cookie
|
//读取cookie
|
||||||
getCookie() {
|
getCookie() {
|
||||||
console.log(document.cookie,'document.cookie-------------------------------------------------------')
|
|
||||||
// if (document.cookie.length > 0) {
|
// if (document.cookie.length > 0) {
|
||||||
// var arr = document.cookie.split("; "); //这里显示的格式需要切割一下自己可输出看下
|
// var arr = document.cookie.split("; "); //这里显示的格式需要切割一下自己可输出看下
|
||||||
// for (var i = 0; i < arr.length; i++) {
|
// for (var i = 0; i < arr.length; i++) {
|
||||||
|
@ -2,31 +2,8 @@
|
|||||||
<div class="home">
|
<div class="home">
|
||||||
<div class="carousel">
|
<div class="carousel">
|
||||||
<Home />
|
<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>
|
</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" />
|
<WalletDialog class="wallet-dialog" :walletDialogVisible="walletDialogVisible" @closeDialog="closeDialog" />
|
||||||
</div>
|
</div>
|
||||||
@ -36,19 +13,13 @@
|
|||||||
// @ is an alias to /src
|
// @ is an alias to /src
|
||||||
// import HelloWorld from '@/components/HelloWorld.vue'
|
// import HelloWorld from '@/components/HelloWorld.vue'
|
||||||
import Home from "./home/index.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 WalletDialog from './../components/walletDialog/index.vue'
|
||||||
import { getToken } from "@/utils/cookies.js";
|
import { getToken } from "@/utils/cookies.js";
|
||||||
import Swiper from "swiper";
|
|
||||||
import "swiper/css/swiper.css";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "HomeView",
|
name: "HomeView",
|
||||||
components: {
|
components: {
|
||||||
Home,
|
Home,
|
||||||
Bonus,
|
|
||||||
Ranking,
|
|
||||||
WalletDialog,
|
WalletDialog,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -57,12 +28,6 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
bgCor() {
|
|
||||||
// if(this.activeIndex == 1) {
|
|
||||||
// console.log(this.activeIndex)
|
|
||||||
// return `background: #87uy67`
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -75,10 +40,6 @@ export default {
|
|||||||
closeDialog() {
|
closeDialog() {
|
||||||
this.walletDialogVisible = false
|
this.walletDialogVisible = false
|
||||||
},
|
},
|
||||||
handleSlideChange() {
|
|
||||||
const activeIndex = this.$refs.mySwiper.Swiper;
|
|
||||||
console.log(activeIndex, "-------------------------------");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -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>
|
|
@ -449,7 +449,6 @@ export default {
|
|||||||
)
|
)
|
||||||
if(res.data.errcode == 0) {
|
if(res.data.errcode == 0) {
|
||||||
this.boostingList = res.data.data
|
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}` }})
|
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){
|
if(res.data.errcode == 0){
|
||||||
this.myRecordsList = res.data.data
|
this.myRecordsList = res.data.data
|
||||||
}else{
|
|
||||||
console.log('[getMyHistoricalLog error]',res)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 我的助力记录分页
|
// 我的助力记录分页
|
||||||
|
@ -39,7 +39,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log(this.activityData,this.userData)
|
|
||||||
this.generateMonth()
|
this.generateMonth()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -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]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 少于6行,补足6行
|
|
||||||
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>
|
|
||||||
|
|
||||||
|
|
@ -161,7 +161,6 @@ export default {
|
|||||||
// headers: { Authorization: `Bearer ${this.token}` }
|
// headers: { Authorization: `Bearer ${this.token}` }
|
||||||
// });
|
// });
|
||||||
let res = await apiUploadInviteCode(newInvite)
|
let res = await apiUploadInviteCode(newInvite)
|
||||||
// console.log('领取助力奖励 || 判断是否是新用户',res)
|
|
||||||
return
|
return
|
||||||
if (res.data.errcode == 0) {
|
if (res.data.errcode == 0) {
|
||||||
this.isNewUser = 0
|
this.isNewUser = 0
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -726,12 +726,6 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
activeList: {
|
|
||||||
handler(newVal) {
|
|
||||||
// console.log(newVal, "监听");
|
|
||||||
},
|
|
||||||
deep: true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
filteredBar() {
|
filteredBar() {
|
||||||
@ -791,7 +785,6 @@ export default {
|
|||||||
await this.$axios
|
await this.$axios
|
||||||
.get(process.env.VUE_APP_API_URL+`/api/activity/${this.activityId}`)
|
.get(process.env.VUE_APP_API_URL+`/api/activity/${this.activityId}`)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
// if (res.data.errcode == 0) {
|
|
||||||
this.activityName = res.data.data.name;
|
this.activityName = res.data.data.name;
|
||||||
const actionTitles = {
|
const actionTitles = {
|
||||||
TwitterConnect: "Connect",
|
TwitterConnect: "Connect",
|
||||||
@ -807,8 +800,6 @@ export default {
|
|||||||
}
|
}
|
||||||
this.activityData = res.data.data
|
this.activityData = res.data.data
|
||||||
this.baseTasks = res.data.data.baseTasks
|
this.baseTasks = res.data.data.baseTasks
|
||||||
console.log(this.baseTasks, this.activityData)
|
|
||||||
// }
|
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.info(err);
|
console.info(err);
|
||||||
@ -836,7 +827,6 @@ export default {
|
|||||||
let res = await apiBeginActivity(data.id);
|
let res = await apiBeginActivity(data.id);
|
||||||
if(res.errcode == 0) {
|
if(res.errcode == 0) {
|
||||||
await this.getProgress()
|
await this.getProgress()
|
||||||
// console.log("开始任务", res, data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -860,7 +850,6 @@ export default {
|
|||||||
async getActivitrStatue(id) {
|
async getActivitrStatue(id) {
|
||||||
await apiCheckActivity(id);
|
await apiCheckActivity(id);
|
||||||
await this.getProgress()
|
await this.getProgress()
|
||||||
// console.log(res, "检查任务状态------------------");
|
|
||||||
},
|
},
|
||||||
async loginTwitter() {
|
async loginTwitter() {
|
||||||
// const _address = "0x8c10Ae04BF525734eaC00d5F7c062567461c207F";
|
// const _address = "0x8c10Ae04BF525734eaC00d5F7c062567461c207F";
|
||||||
@ -868,7 +857,6 @@ export default {
|
|||||||
// const codeChallenge = crypto.randomUUID()
|
// const codeChallenge = crypto.randomUUID()
|
||||||
const codeChallenge = Date.now();
|
const codeChallenge = Date.now();
|
||||||
const address = this.$store.state.user.address;
|
const address = this.$store.state.user.address;
|
||||||
// console.log('codeChallenge: ' + codeChallenge)
|
|
||||||
const redirectUri = "https://oauth-svr.cebggame.com/twitter/redirect_uri";
|
const redirectUri = "https://oauth-svr.cebggame.com/twitter/redirect_uri";
|
||||||
const state = btoa(`${address}|${codeChallenge}|${location.href}`);
|
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(
|
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
|
state
|
||||||
)}`;
|
)}`;
|
||||||
let newwin = window.open(url, "twitter connect");
|
let newwin = window.open(url, "twitter connect");
|
||||||
console.log(newwin.closed);
|
|
||||||
var timer = setInterval(function() {
|
var timer = setInterval(function() {
|
||||||
if (newwin.closed) {
|
if (newwin.closed) {
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
@ -890,17 +877,13 @@ export default {
|
|||||||
async loginDiscord() {
|
async loginDiscord() {
|
||||||
const _address = this.$store.state.user.address;
|
const _address = this.$store.state.user.address;
|
||||||
const codeChallenge = Date.now();
|
const codeChallenge = Date.now();
|
||||||
console.log(location.href);
|
|
||||||
const state = btoa(`${_address}|${codeChallenge}`);
|
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=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}`;
|
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
|
// location.href = url
|
||||||
// // Redirect the user to the Discord OAuth2 authorization page
|
// // 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 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);
|
let newwin = window.open(url, "discord login", params);
|
||||||
console.log(newwin.closed);
|
|
||||||
var timer = setInterval(function() {
|
var timer = setInterval(function() {
|
||||||
if (newwin.closed) {
|
if (newwin.closed) {
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
@ -1134,7 +1117,6 @@ export default {
|
|||||||
// let res = await apiUsercheckin();
|
// let res = await apiUsercheckin();
|
||||||
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/user/checkin',{ },
|
let res = await this.$axios.post(process.env.VUE_APP_API_URL+'/api/user/checkin',{ },
|
||||||
{ headers: { Authorization: `Bearer ${this.token}` } })
|
{ headers: { Authorization: `Bearer ${this.token}` } })
|
||||||
// console.log(res.data.data,'检查签到并领取奖励')
|
|
||||||
return res.data.data
|
return res.data.data
|
||||||
},
|
},
|
||||||
// 发送宝箱助力上链请求并领取奖励
|
// 发送宝箱助力上链请求并领取奖励
|
||||||
@ -1212,9 +1194,7 @@ export default {
|
|||||||
// params: { code: newInvite, rtoken: rtoken },
|
// params: { code: newInvite, rtoken: rtoken },
|
||||||
// headers: { Authorization: `Bearer ${this.token}` }
|
// headers: { Authorization: `Bearer ${this.token}` }
|
||||||
// });
|
// });
|
||||||
console.log("[code]", newInvite)
|
|
||||||
let res = await apiUploadInviteCode(newInvite)
|
let res = await apiUploadInviteCode(newInvite)
|
||||||
// console.log('领取助力奖励 || 判断是否是新用户---',res)
|
|
||||||
return
|
return
|
||||||
if (res.data.errcode == 0) {
|
if (res.data.errcode == 0) {
|
||||||
this.isNewUser = 0
|
this.isNewUser = 0
|
||||||
@ -1236,17 +1216,7 @@ export default {
|
|||||||
|
|
||||||
// 获取用户状态
|
// 获取用户状态
|
||||||
async getUserState() {
|
async getUserState() {
|
||||||
console.log('update user state')
|
|
||||||
await this.$store.dispatch('user/fetchUserState')
|
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 导航
|
// nav 导航
|
||||||
|
@ -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>
|
|
Loading…
x
Reference in New Issue
Block a user