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.
86 lines
1.8 KiB
86 lines
1.8 KiB
<template>
|
|
<view class="wanlpage-likes wanl-product col-2-20" :style="[pageData.style]">
|
|
<wanl-product :dataList="dataList" :dataStyle="`col-${pageData.params.colthree}-${pageData.params.colmargin}`" />
|
|
<uni-load-more :status="status" :content-text="contentText" />
|
|
</view>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
name: 'WanlPageLikes',
|
|
props: {
|
|
lower: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
pageData: {
|
|
type: Object,
|
|
default: function() {
|
|
return {
|
|
name: '猜你喜欢',
|
|
type: 'likes',
|
|
params: [],
|
|
style: [],
|
|
data: []
|
|
};
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
dataList: [], //数据
|
|
current_page: 1, //当前页码
|
|
last_page: 1, //总页码
|
|
status: 'loading',
|
|
contentText: {
|
|
contentdown: '下拉加载更多',
|
|
contentrefresh: '疯狂加载中...',
|
|
contentnomore: '我是有底线的'
|
|
}
|
|
};
|
|
},
|
|
created() {
|
|
this.loadData();
|
|
},
|
|
methods: {
|
|
async loadData(type) {
|
|
this.status = 'loading';
|
|
// 判断上拉还是下拉
|
|
if (type === 'lower') {
|
|
if (this.current_page >= this.last_page) {
|
|
this.status = 'noMore';
|
|
return false;
|
|
} else {
|
|
this.current_page += 1;
|
|
}
|
|
}
|
|
await uni.request({
|
|
url: '/wanlshop/product/likes',
|
|
data: {
|
|
page: this.current_page
|
|
},
|
|
success: res => {
|
|
if (type === 'lower') {
|
|
this.dataList = this.dataList.concat(res.data.data);
|
|
} else {
|
|
this.dataList = res.data.data;
|
|
}
|
|
this.current_page = res.data.current_page; //当前页码
|
|
this.last_page = res.data.last_page; //总页码
|
|
// 判断是否还有数据
|
|
if (res.data.current_page === res.data.last_page || res.data.total === 0) {
|
|
this.status = 'noMore';
|
|
} else {
|
|
this.status = 'more';
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
watch: {
|
|
lower(newVal, oldVal) {
|
|
this.loadData('lower');
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style></style>
|
|
|