<script>
// 引入 MescrollMixin
import MescrollMixin from 'uni-mixins-mescroll'

export default {
  mixins: [MescrollMixin],
  data() {
    return {
      // 数据列表
      dataList: [],
      // 是否正在加载
      isLoading: false,
      // 是否没有更多数据
      noMoreData: false
    }
  },
  methods: {
    // 下拉刷新回调
    downCallback() {
      // 重新加载数据
      this.loadData(true)
    },
    // 上拉加载更多回调
    upCallback() {
      // 加载更多数据
      this.loadData(false)
    },
    // 加载数据的方法
    loadData(isRefresh) {
      // 设置为正在加载
      this.isLoading = true

      // 模拟异步加载数据
      setTimeout(() => {
        // 假设我们从某个API获取了数据
        const newData = [
          /* 新数据 */
        ]

        // 如果是刷新，则替换数据，否则追加数据
        if (isRefresh) {
          this.dataList = newData
        } else {
          this.dataList = this.dataList.concat(newData)
        }

        // 设置是否还有更多数据
        this.noMoreData = newData.length < 10 // 假设一次请求不足10条则认为没有更多数据

        // 设置为不是正在加载
        this.isLoading = false

        // 结束上拉加载或下拉刷新
        this.mescroll.endSuccess()
      }, 1000)
    }
  }
}
</script>
