<template> <view class="points-body"> <view class="card flex ac jc"> <view class="balance">{{Number(user.integral.accountBalance).toFixed(0)}}</view> <view class="label"> 当前积分 </view> </view> <view v-for="(item,index) in list" :key="index" class="points-item flex ac"> <view class="points-item-left oneflex"> <view class="label">{{item.type|type}}</view> <view class="time">{{item.createTime}}</view> </view> <view class="points-item-right"> {{item.type==3||item.type==2?'-':'+'}}{{Number(item.occurAmount).toFixed(2)}} </view> </view> <uni-load-more :status="loadingType"></uni-load-more> </view> </template> <script> import pointsApi from "@/api/product.js" export default { data() { return { user: uni.getStorageSync('user'), list: [], page: { "currentPage": 1, "pageSize": 10, "params": { "orderStatus": "" } }, loadingType: 'more', //加载更多状态 pageData: null } }, filters: { type(e) { switch (Number(e)) { case 1: return "加油收入"; case 2: return "加油退款"; case 3: return "商品兑换"; case 4: return "商品兑换退款"; default: break; } } }, onLoad() { this.getList() }, methods: { onPullDownRefresh() { this.page.currentPage = 1; this.loadingType = 'more'; this.getList(); }, //加载更多 onReachBottom() { this.page.currentPage += 1 this.getList(); }, async getList() { if (this.loadingType === 'nomore') { return; }; await pointsApi.accountRecordByPage(this.page).then(res => { if (res.code == 20000) { this.list = this.page.currentPage != 1 ? this.list.concat(res.data.list) : res.data .list; this.loadingType = res.data.list.length < this.page.pageSize ? 'nomore' : 'more'; } }); uni.stopPullDownRefresh() }, } } </script> <style lang="scss"> .points-body { width: 100vw; min-height: 100vh; overflow: hidden; padding-top: 357rpx; background-color: #F2F2F2; position: relative; box-sizing: border-box; .points-item { background-color: #FFFFFF; padding: 30rpx; box-sizing: border-box; border-bottom: solid 1rpx #F6F6F6; .points-item-right { color: #666666; font-size: 28rpx; } .points-item-left { .time { font-size: 22rpx; color: #999999; } .label { color: #333333; font-size: 28rpx; margin-bottom: 15rpx; } } } .card { width: 684rpx; height: 337rpx; background-color: #FE5439; border-radius: 10rpx; position: fixed; top: 0; left: 0; right: 0; margin: 10rpx auto; color: #FFFFFF; flex-direction: column; .balance { font-size: 64rpx; font-weight: 600; } } } </style>