初始化万家商超用户端仓库
This commit is contained in:
98
common/mixin/paging_list.js
Normal file
98
common/mixin/paging_list.js
Normal file
@ -0,0 +1,98 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
allowOnloadGetList: true, // 是否允许页面onload生命周期进入后立马执行getlist
|
||||
minixPagingListsApi: '', // 接口地址
|
||||
pageingListApiMethod: 'post', // 接口请求方法
|
||||
pagingListPage: 1, // 分页
|
||||
pagingListAllowLoadMore: true, // 允许加载更多
|
||||
pagingListLoadedAll: false, // 已加载全部数据
|
||||
pagingListNoListData: false, // 没有列表数据,
|
||||
isOrder: false, // 订单页面
|
||||
listData: [],
|
||||
isLoadInit: false, // 初始化数据之后,若无数据再显示无数据图标
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
listDataLength() {
|
||||
return this.listData.length
|
||||
}
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
uni.stopPullDownRefresh();
|
||||
if (this.allowOnloadGetList) {
|
||||
this.pagingListToggle(() => {
|
||||
// uni.stopPullDownRefresh();
|
||||
});
|
||||
} else {
|
||||
// uni.stopPullDownRefresh();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
onLoad() {
|
||||
if (this.allowOnloadGetList) this.pagingListGetLists();
|
||||
},
|
||||
|
||||
//上拉加载更多
|
||||
onReachBottom() {
|
||||
this.pagingListGetLists();
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 列表切换
|
||||
pagingListToggle(fn) {
|
||||
this.pagingListPage = 1
|
||||
this.pagingListAllowLoadMore = true
|
||||
this.pagingListLoadedAll = false
|
||||
this.pagingListNoListData = false
|
||||
this.listData.splice(0, this.listData.length)
|
||||
// this.listData = []
|
||||
if (fn) this.pagingListGetLists(fn);
|
||||
else this.pagingListGetLists();
|
||||
},
|
||||
// 获取列表数据
|
||||
pagingListGetLists(fn) {
|
||||
console.log(this.pagingListLoadedAll)
|
||||
if (!this.pagingListAllowLoadMore || this.pagingListLoadedAll || this.pagingListNoListData) return;
|
||||
this.pagingListAllowLoadMore = false;
|
||||
let postData = {
|
||||
page: this.pagingListPage,
|
||||
pagesize: global.PAGE_SIZE,
|
||||
list_rows: global.PAGE_SIZE
|
||||
}
|
||||
if (this.pagingListPostData) {
|
||||
postData = Object.assign({}, postData, this.pagingListPostData());
|
||||
}
|
||||
this.isShowLoading = true
|
||||
this.$api[this.pageingListApiMethod](this.minixPagingListsApi, postData).then(res => {
|
||||
this.isShowLoading = false
|
||||
if (res.data.code == 1) {
|
||||
if (this.pagingListBeforeResponseData) res.data.data = this.pagingListBeforeResponseData(res);
|
||||
let tempLists = res.data.data.data || res.data.data.list,
|
||||
totalPage = res.data.data.last_page || 1
|
||||
if (this.pagingListResponseData) tempLists = this.pagingListResponseData(tempLists);
|
||||
this.listData.push(...tempLists);
|
||||
this.pagingListAllowLoadMore = true;
|
||||
if (this.pagingListPage >= totalPage) this.pagingListLoadedAll = true;
|
||||
if (this.pagingListPage == 1 && this.listData.length == 0) this.pagingListNoListData = true;
|
||||
this.pagingListPage = this.pagingListPage + 1;
|
||||
} else {
|
||||
this.pagingListAllowLoadMore = true;
|
||||
this.pagingListLoadedAll = true;
|
||||
if (this.pagingListPage == 1 && this.listData.length == 0) this.pagingListNoListData = true;
|
||||
}
|
||||
this.isLoadInit = true;
|
||||
if (fn) fn();
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
this.isShowLoading = false
|
||||
this.pagingListAllowLoadMore = true;
|
||||
this.isLoadInit = true;
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user