2020-08-13 08:12:57 +00:00
|
|
|
<template>
|
|
|
|
<view>
|
|
|
|
<view class="CommissionRank">
|
|
|
|
<view class="header">
|
2021-01-19 02:16:45 +00:00
|
|
|
<view class="rank" v-if="position">您目前的排名<text class="num">{{position}}</text>名</view>
|
2020-08-13 08:12:57 +00:00
|
|
|
<view class="rank" v-else>您目前暂无排名</view>
|
|
|
|
</view>
|
|
|
|
<view class="wrapper">
|
|
|
|
<view class="nav acea-row row-around">
|
2023-09-05 13:36:10 +00:00
|
|
|
<view class="item" :class="active === index ? 'font-color' : ''" v-for="(item,index) in navList"
|
|
|
|
:key="index" @click="switchTap(index)">
|
2020-08-13 08:12:57 +00:00
|
|
|
{{ item }}
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="list">
|
|
|
|
<view class="item acea-row row-between-wrapper" v-for="(item,index) in rankList" :key="index">
|
|
|
|
<view class="num" v-if="index <= 2">
|
2023-09-05 13:36:10 +00:00
|
|
|
<image :src="'/static/images/medal0' + (index+1) + '.png'" />
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
|
|
|
<view class="num" v-else>
|
2023-09-05 13:36:10 +00:00
|
|
|
{{index + 1}}
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
|
|
|
<view class="picTxt acea-row row-between-wrapper">
|
|
|
|
<view class="pictrue">
|
|
|
|
<image :src="item.avatar"></image>
|
|
|
|
</view>
|
2023-09-05 13:36:10 +00:00
|
|
|
<view class="text line1">{{ item.nickname }}</view>
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
2023-09-05 13:36:10 +00:00
|
|
|
<view class="people font-color">¥{{ fen2yuan(item.brokeragePrice) }}</view>
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
|
|
|
</view>
|
2023-09-05 13:36:10 +00:00
|
|
|
<view class='noCommodity' v-if="rankList.length === 0 && (page !== 1 || active === 0)">
|
2021-06-11 09:41:16 +00:00
|
|
|
<emptyPage title="暂无排行~"></emptyPage>
|
|
|
|
</view>
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
|
|
|
</view>
|
2021-06-11 09:41:16 +00:00
|
|
|
<home></home>
|
2020-08-13 08:12:57 +00:00
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
<script>
|
2023-09-05 13:36:10 +00:00
|
|
|
import { toLogin } from '@/libs/login.js';
|
2021-06-11 09:41:16 +00:00
|
|
|
import home from '@/components/home';
|
|
|
|
import emptyPage from '@/components/emptyPage.vue'
|
2023-09-05 13:36:10 +00:00
|
|
|
import { mapGetters } from "vuex";
|
|
|
|
import * as BrokerageAPI from '@/api/trade/brokerage.js'
|
|
|
|
import dayjs from "@/plugin/dayjs/dayjs.min.js";
|
|
|
|
import * as DateUtil from '@/utils/date.js';
|
|
|
|
import * as Util from '@/utils/util.js';
|
|
|
|
export default {
|
2020-08-13 08:12:57 +00:00
|
|
|
components: {
|
2021-06-11 09:41:16 +00:00
|
|
|
emptyPage,
|
|
|
|
home,
|
2020-08-13 08:12:57 +00:00
|
|
|
},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
navList: ["周排行", "月排行"],
|
|
|
|
active: 0,
|
|
|
|
rankList: [],
|
|
|
|
page: 1,
|
2021-01-19 02:16:45 +00:00
|
|
|
limit: 20,
|
2020-08-13 08:12:57 +00:00
|
|
|
loadend: false,
|
|
|
|
loading: false,
|
|
|
|
loadTitle: '加载更多',
|
|
|
|
type: 'week',
|
|
|
|
position: 0,
|
|
|
|
};
|
|
|
|
},
|
|
|
|
computed: mapGetters(['isLogin']),
|
2021-03-19 10:26:43 +00:00
|
|
|
watch:{
|
|
|
|
isLogin:{
|
2023-09-05 13:36:10 +00:00
|
|
|
handler:function(newV, oldV) {
|
|
|
|
if (newV) {
|
2021-03-19 10:26:43 +00:00
|
|
|
this.getBrokerageRankList();
|
|
|
|
this.getBrokerageRankNumber(this.type);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
deep:true
|
|
|
|
}
|
|
|
|
},
|
2020-08-13 08:12:57 +00:00
|
|
|
onLoad() {
|
2023-09-05 13:36:10 +00:00
|
|
|
if (!this.isLogin) {
|
|
|
|
toLogin();
|
|
|
|
return;
|
2020-08-13 08:12:57 +00:00
|
|
|
}
|
2023-09-05 13:36:10 +00:00
|
|
|
this.calculateTimes();
|
|
|
|
this.getBrokerageRankList();
|
|
|
|
this.getBrokerageRankNumber(this.type);
|
2020-08-13 08:12:57 +00:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
switchTap: function(index) {
|
|
|
|
this.active = index;
|
|
|
|
this.type = index ? 'month' : 'week';
|
|
|
|
this.page = 1;
|
|
|
|
this.loadend = false;
|
|
|
|
this.$set(this, 'rankList', []);
|
2023-09-05 13:36:10 +00:00
|
|
|
this.calculateTimes();
|
2020-08-13 08:12:57 +00:00
|
|
|
this.getBrokerageRankList();
|
2021-01-19 02:16:45 +00:00
|
|
|
this.getBrokerageRankNumber(this.type);
|
2020-08-13 08:12:57 +00:00
|
|
|
},
|
2023-09-05 13:36:10 +00:00
|
|
|
getBrokerageRankNumber() {
|
|
|
|
BrokerageAPI.getBrokerageUserRankByPrice({
|
|
|
|
// 'startTime': this.times[0],
|
|
|
|
// 'endTime': this.times[1],
|
|
|
|
'times': this.times
|
2020-08-13 08:12:57 +00:00
|
|
|
}).then(res => {
|
|
|
|
this.position = res.data;
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getBrokerageRankList: function() {
|
2023-09-05 13:36:10 +00:00
|
|
|
if (this.loadend || this.loading) {
|
|
|
|
return;
|
|
|
|
}
|
2020-08-13 08:12:57 +00:00
|
|
|
this.loading = true;
|
|
|
|
this.loadTitle = '';
|
2023-09-05 13:36:10 +00:00
|
|
|
BrokerageAPI.getBrokerageUserRankPageByPrice({
|
|
|
|
pageNo: this.page,
|
|
|
|
pageSize: this.limit,
|
|
|
|
'times[0]': this.times[0],
|
|
|
|
'times[1]': this.times[1],
|
2020-08-13 08:12:57 +00:00
|
|
|
}).then(res => {
|
2023-09-05 13:36:10 +00:00
|
|
|
let list = res.data.list;
|
2021-01-19 02:16:45 +00:00
|
|
|
let loadend = list.length <= this.limit;
|
|
|
|
this.rankList.push.apply(this.rankList, list);
|
2020-12-23 07:56:45 +00:00
|
|
|
this.loading = false;
|
2021-01-19 02:16:45 +00:00
|
|
|
this.loadend = loadend;
|
|
|
|
this.loadTitle = loadend ? '😕我也是有底线的' : '加载更多';
|
|
|
|
this.$set(this, 'rankList', this.rankList);
|
2020-08-13 08:12:57 +00:00
|
|
|
}).catch(err => {
|
|
|
|
this.loading = false;
|
2023-09-05 13:36:10 +00:00
|
|
|
this.loadTitle = '加载更多';
|
2020-08-13 08:12:57 +00:00
|
|
|
})
|
2023-09-05 13:36:10 +00:00
|
|
|
},
|
|
|
|
calculateTimes: function() {
|
|
|
|
let times;
|
|
|
|
if (this.type === 'week') {
|
|
|
|
times = DateUtil.getWeekTimes();
|
|
|
|
} else {
|
|
|
|
times = DateUtil.getMonthTimes();
|
|
|
|
}
|
|
|
|
this.times = [ this.formatDate(times[0]), this.formatDate(times[1]) ]
|
|
|
|
},
|
|
|
|
formatDate: function(date) {
|
|
|
|
return dayjs(date).format("YYYY-MM-DD HH:mm:ss");
|
|
|
|
},
|
|
|
|
fen2yuan(price) {
|
|
|
|
return Util.fen2yuan(price)
|
|
|
|
},
|
2020-08-13 08:12:57 +00:00
|
|
|
},
|
|
|
|
onReachBottom: function() {
|
|
|
|
this.getBrokerageRankList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.CommissionRank .header {
|
|
|
|
background: url("data:image/jpeg;base64,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
|
|
|
|
width: 100%;
|
|
|
|
height: 344rpx;
|
|
|
|
background-size: 100% 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .header .rank {
|
|
|
|
font-size: 33rpx;
|
|
|
|
color: #fff;
|
|
|
|
position: absolute;
|
|
|
|
top: 160rpx;
|
|
|
|
left: 48rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .header .rank .num {
|
|
|
|
font-size: 51rpx;
|
|
|
|
font-weight: bold;
|
|
|
|
margin: 0 10rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper {
|
|
|
|
width: 710rpx;
|
|
|
|
background-color: #fff;
|
2021-06-11 09:41:16 +00:00
|
|
|
border-radius: 14rpx;
|
2020-08-13 08:12:57 +00:00
|
|
|
margin: -76rpx auto 0 auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .nav {
|
|
|
|
height: 99rpx;
|
|
|
|
border-bottom: 2.5rpx solid #f3f3f3;
|
|
|
|
font-size: 30rpx;
|
|
|
|
font-weight: bold;
|
|
|
|
color: #999;
|
|
|
|
line-height: 99rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .nav .item.font-color {
|
2021-06-11 09:41:16 +00:00
|
|
|
border-bottom: 4rpx solid $theme-color;
|
|
|
|
margin-top: -2rpx;
|
2020-08-13 08:12:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list {
|
|
|
|
padding: 0 30rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item {
|
|
|
|
border-bottom: 1px solid #f3f3f3;
|
|
|
|
height: 101rpx;
|
|
|
|
font-size: 28rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .num {
|
|
|
|
color: #666;
|
|
|
|
width: 70rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .num image {
|
|
|
|
width: 34rpx;
|
|
|
|
height: 40rpx;
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .picTxt {
|
|
|
|
width: 350rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .picTxt .pictrue {
|
|
|
|
width: 68rpx;
|
|
|
|
height: 68rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .picTxt .pictrue image {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
display: block;
|
|
|
|
border-radius: 50%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .picTxt .text {
|
|
|
|
width: 262rpx;
|
|
|
|
color: #333;
|
|
|
|
}
|
|
|
|
|
|
|
|
.CommissionRank .wrapper .list .item .people {
|
|
|
|
width: 175rpx;
|
|
|
|
text-align: right;
|
|
|
|
}
|
|
|
|
</style>
|