306132416@qq.com b01b5c56ad 1.添加展示商铺图片功能 5 years ago
..
README.md b01b5c56ad 1.添加展示商铺图片功能 5 years ago
back-top.png b01b5c56ad 1.添加展示商铺图片功能 5 years ago
index.vue b01b5c56ad 1.添加展示商铺图片功能 5 years ago

README.md

s-pull-scroll

参数说明

{
  // class
  customClass: {
    type: String,
    default: ''
  },
  // 是否通过fixed固定高度, 默认true
  fixed: {
    type: Boolean,
    default: true
  },
  // 距顶部(rpx)
  top: {
    type: [Number, Array, String],
    default () {
      return 0;
    }
  },
  // 距底部(rpx)
  bottom: {
    type: [Number, Array, String],
    default () {
      return 0;
    }
  },
  // 提示文案
  loadingText: {
    type: String,
    default: '加载中 ...'
  },
  pullingText: {
    type: String,
    default: '下拉刷新'
  },
  loosingText: {
    type: String,
    default: '释放刷新'
  },
  finishText: {
    type: String,
    default: '暂无更多了'
  },
  emptyText: {
    type: String,
    default: '暂无数据'
  },
  errorText: {
    type: String,
    default: '加载失败,点击重新加载'
  },
  // 下拉配置
  // 下拉回掉,参数为vm
  pullDown: Function,
  downOffset: {
    type: Number,
    default: 100
  },
  downFps: {
    type: Number,
    default: 40
  },
  downMinAngle: {
    type: Number,
    default: 45
  },
  downInOffsetRate: {
    type: Number,
    default: 1
  },
  downOutOffsetRate: {
    type: Number,
    default: 0.4
  },
  downStartTop: {
    type: Number,
    default: 100
  },
  downBottomOffset: {
    type: Number,
    default: 20
  },
  // 上拉配置
  // 上拉回掉,参数为vm
  pullUp: Function,
  upOffset: {
    type: Number,
    default: 160
  },
  // 回到顶部
  backTop: Boolean,
  backTopOffset: {
    type: Number,
    default: 1000
  }
}

组件vm实例属性,方法说明


// 分页加载时,当前页数
pullScroll.page

// 当加载完数据后,可以吊以下4个方法去实现视图对应显示逻辑

pullScroll.success(); // 表示加载成功

pullScroll.error(); // 表示加载失败,显示失败布局,page会减1

pullScroll.empty(); // 表示暂无数据

pullScroll.finish(isShowFinishText:boolean); // 表示全部加载完毕,参数是否显示finishText,默认显示

// 初始化刷新,page从1开始
pullScroll.refresh(); // 如有pullDown,则自动触发下拉刷新,如有pullUp,则自动触发pullUp,page从1开始

使用方式

template

<s-pull-scroll ref="pullScroll" :pullDown="pullDown" :pullUp="loadData">
  <ul>
    <li
      v-for="(item,index) of list"
      :key="index"
      style="font-size:30rpx;padding:40rpx;text-align:center;border-bottom:1px solid #aaa"
    >{{item}}</li>
  </ul>
</s-pull-scroll>

script

import sPullScroll from '@/s-ui/s-pull-scroll';
export default {
  components: {
    sPullScroll
  },
  data () {
    return {
      list: []
    };
  },
  methods: {
    refresh () {
      this.$nextTick(() => {
        this.$refs.pullScroll.refresh();
      });
    },
    pullDown (pullScroll) {
      setTimeout(() => {
        this.loadData(pullScroll);
      }, 200);
    },
    loadData (pullScroll) {
      setTimeout(() => {
        if (pullScroll.page == 1) {
          this.list = [];
        }
        const curList = [];
        for (let i = this.list.length; i < this.list.length + 20; i++) {
          curList.push(i);
        }
        this.list = this.list.concat(curList);
        if (this.list.length > 60) {
          // finish(boolean:是否显示finishText,默认显示)
          pullScroll.finish(this.list.length > 5);
        } else {
          pullScroll.success();
        }
      }, 500);
    }
  },
  onLoad () {
    this.refresh();
  }
};