初始化
This commit is contained in:
93
common/js/list.js
Normal file
93
common/js/list.js
Normal file
@@ -0,0 +1,93 @@
|
||||
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: {},
|
||||
params: {
|
||||
pages: 1,
|
||||
step: 20,
|
||||
entity: {},
|
||||
},
|
||||
reload () {
|
||||
this.data = [];
|
||||
this.status = "loading";
|
||||
this.empty = false;
|
||||
this.params.pages = 1;
|
||||
this.next();
|
||||
},
|
||||
callBack: null,
|
||||
firstCallBack: null,
|
||||
loadedCallback: null,
|
||||
next () {
|
||||
me.$request({
|
||||
url: url,
|
||||
data: Object.assign(
|
||||
{
|
||||
// page: {
|
||||
// current: this.params.pages,
|
||||
// orders: [],
|
||||
// size: this.params.step,
|
||||
// total: 0,
|
||||
// },
|
||||
offset: this.params.pages,
|
||||
limit: this.params.step,
|
||||
current: this.params.pages,
|
||||
pageSize: this.params.step,
|
||||
},
|
||||
this.params
|
||||
),
|
||||
header: this.header,
|
||||
method: "POST",
|
||||
}).then((res) => {
|
||||
console.warn(res);
|
||||
let resultData = res.rows || res.data?.list || res.data?.result?.records || [];
|
||||
if (this.params.pages == 1) {
|
||||
this.data = resultData;
|
||||
if (resultData.length == 0 || resultData == 0) {
|
||||
this.empty = true;
|
||||
} else if (resultData.length < this.params.step) {
|
||||
this.status = "noMore";
|
||||
} else if (res.total == resultData.length) {
|
||||
this.status = "noMore";
|
||||
}
|
||||
} else {
|
||||
this.data.push(...resultData);
|
||||
if (resultData.length < this.params.step) {
|
||||
this.status = "noMore";
|
||||
}
|
||||
}
|
||||
|
||||
if (this.params.pages == 1) {
|
||||
this.firstCallBack && this.firstCallBack();
|
||||
}
|
||||
this.loadedCallback && this.loadedCallback();
|
||||
this.params.pages++;
|
||||
this.total = res.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user