You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 lines
5.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="flex flex-direction" style="height: 100%;">
<u-navbar title="累计收益" :background="{backgroundColor: '#16182B'}" back-icon-color="#fff" title-color="#fff"
:border-bottom="false"></u-navbar>
<view class="total-box">
<view class="total-box-con bg-img" :style="'background-image: url('+STATIC_URL+'bg.png);'">
<view class="con-box flex flex-direction justify-between">
<view>
<view class="text">累计收益</view>
<view style="font-size: 48rpx;color: #000;">{{accumulateIncome.all}}</view>
</view>
<view class="flex justify-between">
<view>
<view class="text">自购收益()</view>
<view class="num">{{accumulateIncome.selfShopping}}</view>
</view>
<view>
<view class="text">分享收益()</view>
<view class="num">{{accumulateIncome.share}}</view>
</view>
<view>
<view class="text">团队收益()</view>
<view class="num">{{accumulateIncome.team}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="time-box flex justify-between">
<picker mode="date" start="1990-01-01" fields="year" :end="end_time" @change="chooseTime">
<view class="time bg-white text-black">{{time}}<text class="cuIcon-triangledownfill"></text></view>
</picker>
<view>年度收益:<text class="text-red">{{yearIncome}}</text></view>
</view>
<view class="month-earning-box bg-white">
<view class="month-top bg-white flex justify-between">
<view class="text-black" style="font-size: 36rpx;">月度收益</view>
<view style="color: #aaa;">{{incomes.length}}期收益</view>
</view>
<view class="month-con">
<view class="item bg-white" v-for="(item,index) in incomes" :key="index">
<view class="item-con">
<view class="flex justify-between" style="line-height: 100rpx;">
<view class="text-black"><text style="font-size: 36rpx;">{{item.month}}</text></view>
<view>总收益<text class="text-red">{{item.totalIncome}}</text></view>
</view>
<view class="flex justify-between">
<view>
<view class="text">自购收益</view>
<view class="num">{{item.myIncome}}</view>
</view>
<view>
<view class="text">分享收益</view>
<view class="num">{{item.shareIncome}}</view>
</view>
<view>
<view class="text">团队收益</view>
<view class="text-red" style="font-size: 24rpx;" v-if="item.teamIncome==-1"></view>
<view class="num" v-else>{{item.teamIncome}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
STATIC_URL:this.STATIC_URL,
end_time: "",
time: "",
accumulateIncome:{
all:0,
selfShopping:0,
share:0,
team:0
},
incomes:[],
yearIncome:0
}
},
onLoad() {
this.end_time = this.time = this.getToday()
this.getData()
},
methods: {
chooseTime(e) {
// console.log(e.detail.value)
this.time = e.detail.value
this.getData()
},
getData(){
this.$u.post('/api/v1/shop/shop_addup_income', {
userId: uni.getStorageSync("userInfo").id,
year:this.time
}).then(res => {
console.log(res.data);
if (res.data.code == "FAIL") {
this.$u.toast(res.data.msg);
return
}
this.accumulateIncome = res.data.data.accumulateIncome
this.incomes = res.data.data.incomes
this.yearIncome = res.data.data.yearIncome
});
},
getToday() {
let today = new Date()
let Y = today.getFullYear()
let M = today.getMonth() + 1
let D = today.getDate()
let newDate = Y.toString()
// console.log(newDate)
return newDate
},
}
}
</script>
<style lang="scss">
page {
background-color: #F5F5F5;
width: 100vw;
height: 100vh;
}
.total-box {
padding: 30rpx;
background-color: #16182B;
.total-box-con {
width: 690rpx;
height: 340rpx;
position: relative;
border-radius: 15rpx;
overflow: hidden;
.con-box {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
padding: 30rpx;
border-radius: 10rpx;
overflow: hidden;
box-shadow: 0 3rpx 10rpx 3rpx rgba(0, 0, 0, 0.1);
.text {
color: #aaa;
font-size: 24rpx;
margin-bottom: 15rpx;
}
.num {
color: #000;
font-size: 32rpx;
}
}
}
}
.time-box {
line-height: 60rpx;
padding: 60rpx 30rpx 30rpx;
color: #AAAAAA;
.time {
border-radius: 40rpx;
padding: 0 10rpx 0 20rpx;
}
}
.month-earning-box {
margin: 30rpx;
box-shadow: 0 3rpx 10rpx 3rpx rgba(0,0,0,0.1);
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 10rpx;
.month-top {
line-height: 125rpx;
border-bottom: 4rpx dashed #ddd;
padding: 0 30rpx;
}
.month-con {
padding: 20rpx 0 100rpx;
.item {
padding: 20rpx 30rpx;
position: relative;
&::before {
content: "";
height: 60rpx;
width: 6rpx;
border-radius: 5rpx;
background-color: #D5101A;
position: absolute;
left: 60rpx;
bottom: 0;
transform: translateY(50%);
z-index: 100;
}
&::after {
content: "";
height: 60rpx;
width: 6rpx;
border-radius: 5rpx;
background-color: #D5101A;
position: absolute;
right: 60rpx;
bottom: 0;
transform: translateY(50%);
z-index: 100;
}
&:last-child::before {
content: none;
}
&:last-child::after {
content: none;
}
.item-con {
background-color: #F7F8FA;
padding: 30rpx;
.text {
color: #aaa;
font-size: 24rpx;
margin-bottom: 10rpx;
}
.num {
color: #000;
font-size: 32rpx;
line-height: 40rpx;
}
}
}
}
}
</style>