Files
2025-04-30 14:04:34 +08:00

99 lines
3.7 KiB
JavaScript

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;
})
}
}
}