Files
app-govern/common/js/list.js
2023-03-30 09:04:07 +08:00

81 lines
2.8 KiB
JavaScript

export default {
onPullDownRefresh () {
this.store && this.store.reload();
this.store.loadedCallback = () => {
uni.stopPullDownRefresh();
};
},
onReachBottom () {
if (this.store.status != "noMore") {
this.store.next && this.store.next();
}
},
data () {
return {
store: {},
};
},
methods: {
DataSource (url) {
var me = this;
return {
data: [],
status: "more",
empty: false,
total: 0,
header: {
"Content-Type": "application/json;charset=UTF-8",
},
params: {
currentPage: 1,
pageSize: 20,
},
reload () {
this.data = [];
this.status = "loading";
this.empty = false;
this.params.currentPage = 1;
this.next();
},
callBack: null,
firstCallBack: null,
loadedCallback: null,
next () {
me.$request({
url: url,
data: this.params,
header: this.header,
method: "POST",
}).then((res) => {
console.warn(res);
let resultData = res.rows || res.data?.list || res.data?.records || [];
if (this.params.currentPage == 1) {
this.data = resultData;
if (resultData.length == 0 || resultData == 0) {
this.empty = true;
} else if (resultData.length < this.params.pageSize) {
this.status = "noMore";
} else if (res.total == resultData.length) {
this.status = "noMore";
}
} else {
this.data.push(...resultData);
if (resultData.length < this.params.pageSize) {
this.status = "noMore";
}
}
if (this.params.currentPage == 1) {
this.firstCallBack && this.firstCallBack();
}
this.loadedCallback && this.loadedCallback();
this.params.currentPage++;
this.total = res.total;
this.loading = false;
});
},
};
},
},
};