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.
147 lines
3.1 KiB
147 lines
3.1 KiB
<template>
|
|
<view>
|
|
<view v-if="integralList.length" class="month-list">
|
|
<view class="month-item" v-for="(integralItem, index) in integralList" :key="index">
|
|
<view class="month-top">{{ integralItem.time }}</view>
|
|
<view class="month-bottom">
|
|
<view class="item acea-row" v-for="item in integralItem.list" :key="item.id">
|
|
<view class="item-left">
|
|
<view>{{ item.mark }}</view>
|
|
<view class="time">{{ item.add_time }}</view>
|
|
</view>
|
|
<view class="item-right">{{ item.pm ? '+' : '-' }}{{ item.number }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="px-20 mt-20" v-else>
|
|
<emptyPage title='暂无积分记录~' src="/statics/images/noOrder.gif"></emptyPage>
|
|
</view>
|
|
<view class="loadingicon acea-row row-center-wrapper" v-if="integralList.length">{{ loadTitle }}</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getIntegralList
|
|
} from '@/api/user.js';
|
|
import emptyPage from '@/components/emptyPage.vue'
|
|
export default {
|
|
data() {
|
|
return {
|
|
page: 1,
|
|
limit: 10,
|
|
integralList: [],
|
|
list: [],
|
|
times: [],
|
|
loadend: false,
|
|
loading: false,
|
|
loadTitle: '加载更多',
|
|
}
|
|
},
|
|
components:{ emptyPage },
|
|
onLoad() {
|
|
this.getIntegralList();
|
|
},
|
|
onReachBottom() {
|
|
this.getIntegralList();
|
|
},
|
|
methods: {
|
|
getIntegralList() {
|
|
let that = this;
|
|
if (that.loading) return;
|
|
if (that.loadend) return;
|
|
that.loading = true;
|
|
that.loadTitle = '';
|
|
getIntegralList({
|
|
page: that.page,
|
|
limit: that.limit
|
|
}).then(function(res) {
|
|
let data = res.data;
|
|
let list = data.list;
|
|
let times = data.times;
|
|
let integralList = [];
|
|
for (let i = 0; i < times.length; i++) {
|
|
if (!that.times.includes(times[i])) {
|
|
that.times.push(times[i]);
|
|
that.integralList.push({
|
|
time: times[i],
|
|
list: [],
|
|
});
|
|
}
|
|
}
|
|
for (let i = 0; i < that.integralList.length; i++) {
|
|
for (let j = 0; j < list.length; j++) {
|
|
if (times[i] == list[j].time_key) {
|
|
that.integralList[i].list.push(list[j]);
|
|
}
|
|
}
|
|
}
|
|
let loadend = list.length < that.limit;
|
|
that.page = that.page + 1;
|
|
that.loading = false;
|
|
that.loadend = loadend;
|
|
that.loadTitle = loadend ? '没有更多内容啦~' : "加载更多";
|
|
}, function(res) {
|
|
this.loading = false;
|
|
that.loadTitle = '加载更多';
|
|
});
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.month-list {
|
|
padding: 0 20rpx;
|
|
|
|
.month-top {
|
|
padding: 32rpx 0 24rpx;
|
|
font-size: 24rpx;
|
|
line-height: 34rpx;
|
|
color: #999999;
|
|
}
|
|
|
|
.month-bottom {
|
|
padding: 0 24rpx;
|
|
border-radius: 24rpx;
|
|
background: #FFFFFF;
|
|
}
|
|
|
|
.item {
|
|
padding: 32rpx 0;
|
|
|
|
+.item {
|
|
border-top: 1rpx solid #EEEEEE;
|
|
}
|
|
}
|
|
|
|
.item-left {
|
|
flex: 1;
|
|
font-size: 28rpx;
|
|
line-height: 40rpx;
|
|
color: #333333;
|
|
}
|
|
|
|
.time {
|
|
margin-top: 12rpx;
|
|
font-size: 24rpx;
|
|
line-height: 34rpx;
|
|
color: #999999;
|
|
}
|
|
|
|
.item-right {
|
|
font-family: Regular;
|
|
font-size: 36rpx;
|
|
line-height: 40rpx;
|
|
color: #333333;
|
|
}
|
|
}
|
|
|
|
.loadingicon {
|
|
padding: 32rpx 0;
|
|
font-size: 26rpx;
|
|
line-height: 36rpx;
|
|
color: #CCCCCC;
|
|
}
|
|
</style> |