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: { pageNum: 1, pageSize: 20, }, timer: null, callBack: null, firstCallBack: null, loadedCallback: null, reload() { this.data = [] this.status = 'loading' this.empty = false this.params.pageNum = 1 this.next() }, search() { // 节流搜索 clearTimeout(this.timer) this.timer = setTimeout(() => { this.reload() }, 300) }, next() { me.$request({ url: url, data: this.params, header: this.header, method: 'POST', }).then((res) => { console.warn(res) let resultData = res.data?.list || res.data?.records || res.data || [] if (this.params.pageNum == 1) { this.data = resultData if (resultData.length == 0 || resultData == 0) { this.empty = true this.status = 'noMore' } 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.pageNum == 1) { this.firstCallBack && this.firstCallBack() } this.loadedCallback && this.loadedCallback() this.params.pageNum++ this.total = res.total this.loading = false }) }, } }, }, }