216 lines
4.7 KiB
Vue
216 lines
4.7 KiB
Vue
<template>
|
||
<div class="card">
|
||
<div class="header_title">
|
||
欢迎回来!{{ storeUser.userInfo.loginName }}
|
||
</div>
|
||
<div class="data_row">
|
||
<div class="item">
|
||
<div class="icon">
|
||
<img class="img" src="../assets/home_icon1.png">
|
||
</div>
|
||
<div class="info">
|
||
<div class="title">昨日收款</div>
|
||
<div class="num">
|
||
<count-to :start-val="0" :decimals="2" :end-val="homeData.sumConsumeFee" :duration="1000" />
|
||
<!-- {{ homeData.sumConsumeFee }} -->
|
||
<span class="i">元</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="item">
|
||
<div class="icon">
|
||
<img class="img" src="../assets/home_icon2.png">
|
||
</div>
|
||
<div class="info">
|
||
<div class="title">总收款</div>
|
||
<div class="num">
|
||
<count-to :start-val="0" :decimals="2" :end-val="homeData.sumfansShareMoney" :duration="1000" />
|
||
<span class="i">元</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- <div class="item">
|
||
<div class="icon">
|
||
<img class="img" src="../assets/home_icon3.png">
|
||
</div>
|
||
<div class="info">
|
||
<div class="title">今日收益</div>
|
||
<div class="num">
|
||
<count-to :start-val="0" :decimals="2" :end-val="homeData.yestedayShareMoney" :duration="1000" />
|
||
<span class="i">元</span>
|
||
</div>
|
||
</div>
|
||
</div> -->
|
||
<!-- <div class="item">
|
||
<div class="icon">
|
||
<img class="img" src="../assets/home_icon4.png">
|
||
</div>
|
||
<div class="info">
|
||
<div class="title">推广费率</div>
|
||
<div class="num">
|
||
{{ homeData.currentFee }}
|
||
<span class="i">%</span>
|
||
</div>
|
||
</div>
|
||
</div> -->
|
||
</div>
|
||
</div>
|
||
<div class="card mt15">
|
||
<chart-card :user-id="storeUser.userInfo.userId" />
|
||
</div>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { getIndexData, querySumAmount } from '@/api/home.js'
|
||
import { useUser } from "@/store/user.js";
|
||
import chartCard from '@/components/chartCard.vue';
|
||
|
||
const storeUser = useUser();
|
||
|
||
let homeData = reactive({
|
||
sumConsumeFee: 0,
|
||
sumfansShareMoney: 0,
|
||
yestedayShareMoney: 0,
|
||
currentFee: 0
|
||
})
|
||
|
||
// 获取首页数据
|
||
async function getIndexDataHandle() {
|
||
try {
|
||
const res = await querySumAmount()
|
||
homeData.sumConsumeFee = res.yestedayAmount
|
||
homeData.sumfansShareMoney = res.sumAmount
|
||
homeData.yestedayShareMoney = res.yestedayShareMoney
|
||
homeData.currentFee = res.currentFee
|
||
} catch (error) {
|
||
console.log(error)
|
||
}
|
||
}
|
||
|
||
onMounted(() => {
|
||
getIndexDataHandle()
|
||
});
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.header_title {
|
||
font-size: 18px;
|
||
font-weight: bold;
|
||
padding: 15px 0 30px 0;
|
||
border-bottom: 1px solid #ececec;
|
||
}
|
||
|
||
.data_row {
|
||
display: flex;
|
||
padding: 50px 0;
|
||
|
||
.item {
|
||
flex: 1;
|
||
display: flex;
|
||
padding-left: 50px;
|
||
|
||
&:not(:last-child) {
|
||
position: relative;
|
||
|
||
&::after {
|
||
content: "";
|
||
height: 100%;
|
||
border-right: 1px solid #ececec;
|
||
position: absolute;
|
||
top: 0;
|
||
right: 0;
|
||
}
|
||
}
|
||
|
||
.icon {
|
||
$size: 55px;
|
||
width: $size;
|
||
height: $size;
|
||
border-radius: 50%;
|
||
background-color: #F2F3F5;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
|
||
.img {
|
||
$size: 30px;
|
||
width: $size;
|
||
height: $size;
|
||
object-fit: contain;
|
||
}
|
||
}
|
||
|
||
.info {
|
||
flex: 1;
|
||
padding-left: 20px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
|
||
.title {
|
||
font-size: 14px;
|
||
color: #666;
|
||
font-weight: 300;
|
||
}
|
||
|
||
.num {
|
||
font-size: 24px;
|
||
font-weight: bold;
|
||
padding-top: 10px;
|
||
|
||
.i {
|
||
font-size: 12px;
|
||
position: relative;
|
||
bottom: 1px;
|
||
right: -4px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
.userInfo {
|
||
padding: 20px;
|
||
width: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 0 20px;
|
||
border: 1px solid #eee;
|
||
background-color: #fff;
|
||
|
||
.name {
|
||
font-size: 20px;
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
.charts-case {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
grid-template-rows: repeat(2, 1fr);
|
||
gap: 10px;
|
||
grid-template-areas:
|
||
"a b"
|
||
"c c";
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.charts-chunk {
|
||
border: 1px solid #eee;
|
||
background-color: #fff;
|
||
}
|
||
|
||
.charts-chunk:nth-child(0) {
|
||
grid-area: a;
|
||
}
|
||
|
||
.charts-chunk:nth-child(1) {
|
||
grid-area: b;
|
||
}
|
||
|
||
.charts-chunk:last-child {
|
||
grid-area: c;
|
||
}
|
||
</style>
|