综合办公系统
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

mescroll-comp-item.vue 1.2KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <template>
  2. <!-- 当mescroll-body写在子组件时,父页面需引入mescroll-comp.js的mixins -->
  3. <mescroll-body ref="mescrollRef" top="100" @init="mescrollInit" @down="downCallback" @up="upCallback">
  4. <!-- 数据列表 -->
  5. <good-list :list="goods"></good-list>
  6. </mescroll-body>
  7. </template>
  8. <script>
  9. import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
  10. import {apiGoods} from "@/api/mock.js"
  11. export default {
  12. mixins: [MescrollMixin], // 使用mixin (在main.js注册全局组件)
  13. data() {
  14. return {
  15. goods: []
  16. }
  17. },
  18. methods: {
  19. /*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
  20. upCallback(page) {
  21. //联网加载数据
  22. apiGoods(page.num, page.size).then(curPageData=>{
  23. //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
  24. this.mescroll.endSuccess(curPageData.length);
  25. //设置列表数据
  26. if(page.num == 1) this.goods = []; //如果是第一页需手动制空列表
  27. this.goods=this.goods.concat(curPageData); //追加新数据
  28. }).catch(()=>{
  29. //联网失败, 结束加载
  30. this.mescroll.endErr();
  31. })
  32. }
  33. }
  34. }
  35. </script>