const { request } = require('../api/request') const { debounce } = require('../utils/util') module.exports = { data() { return { pagenum: 1, pagesize: 20, finished: false, // 所有数据是否加载完 isRefresh: false, // 是否下拉刷新 isFetchLock: false, // 接口调用加锁 listData: [], freshing: false } }, methods: { handleKeyWords: debounce(function (event) { const { formkey } = event.target.dataset if (formkey) { this.setData({ [`searchForm.${formkey}`]: event.detail.value }, () => { this.refreshOrderList() }) } }, 2000), async fetchOrderList() { const that = this const isRefresh = that.data.isRefresh if (that.data.finished) { return } if (that.data.isFetchLock) { return } that.setData({ isFetchLock: true }) try { const { status, data, msg } = await request({ url: that.data.listUrl, method: 'POST', data: { 'page': that.data.pagenum, 'page_size': that.data.pagesize, ...that.data.searchForm }, showLoading: false }) if (status) { const { list } = data if (Array.isArray(list)) { const _list = isRefresh ? [].concat(list) : that.data.listData.concat(list) that.setData({ listData: _list, finished: list.length < that.data.pagesize, isRefresh: false, isFetchLock: false, pagenum: that.data.pagenum + 1 }) } } else { wx.showToast({ title: msg, icon: 'none' }) } } catch (e) {} if (that.data.freshing) { that.setData({ freshing: false }) } if (isRefresh && wx.stopPullDownRefresh) { wx.stopPullDownRefresh() } }, refreshOrderList() { this.setData({ pagenum: 1, pagesize: 20, finished: false, isRefresh: true, isFetchLock: false }, () => { this.fetchOrderList() }) } } }