84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
<template>
 | 
						|
	<view class="integral-details">
 | 
						|
		<mescroll-body ref="mescrollRef" :up="{
 | 
						|
		  	noMoreSize: 10,
 | 
						|
		  	empty: {
 | 
						|
		  		icon: '/static/images/order_null.png',
 | 
						|
		  		tip: '暂无积分明细~',
 | 
						|
		  		fixed: false
 | 
						|
		  	}
 | 
						|
		  }" @init="mescrollInit" @down="downCallback" @up="upCallback">
 | 
						|
			<view class="integral-lists">
 | 
						|
				<view class="item flex row-between bg-white" v-for="(item, index) in integralList" :key="index">
 | 
						|
					<view class="">
 | 
						|
						<view class="nr">
 | 
						|
							{{item.source_type}}
 | 
						|
						</view>
 | 
						|
						<view class="xs muted m-t-10">
 | 
						|
							{{item.create_time}}
 | 
						|
						</view>
 | 
						|
					</view>
 | 
						|
					<view :class="'lg ' +(item.change_type == 1 ? 'primary' : '')">
 | 
						|
						{{item.change_amount_format}}
 | 
						|
					</view>
 | 
						|
				</view>
 | 
						|
			</view>
 | 
						|
		</mescroll-body>
 | 
						|
	</view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
	import {
 | 
						|
		getAccountLog
 | 
						|
	} from "@/api/user";
 | 
						|
 | 
						|
	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
 | 
						|
	export default {
 | 
						|
		mixins: [MescrollMixin], // 使用mixin
 | 
						|
		data() {
 | 
						|
			return {
 | 
						|
				integralList: [],
 | 
						|
			};
 | 
						|
		},
 | 
						|
 | 
						|
 | 
						|
		methods: {
 | 
						|
			// 上拉加载更多
 | 
						|
			upCallback({
 | 
						|
				num,
 | 
						|
				size
 | 
						|
			}) {
 | 
						|
				getAccountLog({
 | 
						|
					page_no: num,
 | 
						|
					page_size: size,
 | 
						|
					source: 2, //积分明细
 | 
						|
				}).then(({
 | 
						|
					data,
 | 
						|
					code
 | 
						|
				}) => {
 | 
						|
					if(code != 1) return this.mescroll.endErr()
 | 
						|
					if (num === 1) this.integralList = []
 | 
						|
					this.integralList = [...this.integralList, ...data.list]
 | 
						|
					this.mescroll.endSuccess(data.list.length, !!data.more)
 | 
						|
				}).catch(err => {
 | 
						|
					this.mescroll.endErr()
 | 
						|
				})
 | 
						|
			}
 | 
						|
		},
 | 
						|
	}
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss">
 | 
						|
	.integral-lists {
 | 
						|
		padding-top: 20rpx;
 | 
						|
		.item {
 | 
						|
			padding: 18rpx 30rpx;
 | 
						|
			position: relative;
 | 
						|
			&:not(:last-of-type) {
 | 
						|
				border-bottom: $-solid-border;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
</style>
 |