/**
|
|
* 处理查询参数
|
|
* @param {Object} self - 组件实例
|
|
* @param {Object} queryParams - 额外的查询参数
|
|
* @returns {Object} 合并后的查询参数
|
|
*/
|
|
function query(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 : [],
|
|
}
|
|
},
|
|
// 下拉刷新
|
|
onPullDownRefresh() {
|
|
this.getData()
|
|
},
|
|
// 上拉加载更多
|
|
onReachBottom() {
|
|
this.loadMoreData()
|
|
},
|
|
// 页面显示时加载数据
|
|
onShow() {
|
|
this.getData()
|
|
},
|
|
methods: {
|
|
/**
|
|
* 获取列表数据
|
|
* @param {Object} queryParams - 查询参数
|
|
* @returns {Promise} 返回Promise对象
|
|
*/
|
|
getData(queryParams){
|
|
return new Promise((success, error) => {
|
|
if(!this.mixinsListApi){
|
|
return console.error('mixinsListApi 缺失');
|
|
}
|
|
this.$api(this.mixinsListApi,
|
|
query(this, queryParams), res => {
|
|
uni.stopPullDownRefresh()
|
|
if(res.code == 200){
|
|
success(res.result)
|
|
// 更新列表数据
|
|
this[this.mixinsListKey || 'list'] = res.result.records || res.result
|
|
// 更新总数
|
|
this.total = res.result.total || res.result.length
|
|
// 调用数据加载完成的回调
|
|
this.getDataThen && this.getDataThen(res.result.records, res.result.total, res.result)
|
|
}
|
|
})
|
|
})
|
|
},
|
|
/**
|
|
* 加载更多数据
|
|
*/
|
|
loadMoreData(){
|
|
if(this.queryParams.pageSize < this.total){
|
|
this.queryParams.pageSize += 10
|
|
this.getData()
|
|
}
|
|
},
|
|
}
|
|
}
|