function query(self, queryParams){ // return (self.beforeGetData && self.beforeGetData()) || // queryParams || self.queryParams // 深度合并对象 return self.$utils.deepMergeObject( self.$utils.deepMergeObject(self.queryParams, (self.beforeGetData && self.beforeGetData()) || {}), queryParams) } export default { data() { return { queryParams: { pageNo: 1, pageSize: 10, }, total : 0, List : [], hasMore: true, // 是否还有更多数据 loading: false, // 是否正在加载 } }, onPullDownRefresh() { this.refreshList() }, onReachBottom() { this.loadMore() }, onLoad() { this.refreshList() }, methods: { // 刷新列表 refreshList() { this.queryParams.pageNo = 1; this.hasMore = true; this.List = []; this.loadList(); }, // 加载更多 loadMore() { console.log(this.hasMore , this.loading); if (!this.hasMore || this.loading) return; this.queryParams.pageNo++; this.loadList(); }, // 加载订单列表 loadList() { return new Promise((success, error) => { if(!this.mixinsListApi){ return console.error('mixinsListApi 缺失'); } if (this.loading) return; this.loading = true; const params = { ...this.queryParams, }; this.$api(this.mixinsListApi, query(this, params), res => { this.loading = false; uni.stopPullDownRefresh(); if (res.code === 200 && res.result) { this.getDataThen && this.getDataThen(res.result.records, res.result.total, res.result) success(res.result) const newList = res.result.records || []; this.total = res.result.total if (this.pageNo === 1) { this.List = newList; } else { this.List = [...this.List, ...newList]; } // 判断是否还有更多数据 this.hasMore = newList.length >= this.queryParams.pageSize; } else { uni.showToast({ title: res.message || '加载失败', icon: 'none' }); error(res) } }) }) }, } }