| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * @name 封装下拉
- * @params getList 刷新数据的函数
- * @params listData 存放数据的变量名
- * @params page 页数变量名
- */
- export default({getList="getList",listData="listData",page="page",initIndex="initIndex",modelData="modelData"})=> {
- var startPoint={}
- var endPoint={}
- return {
- data(){
- return {
- [listData]:[],
- [page]:1,
- [initIndex]:0,
- [modelData]:[
- {label:"我的代办"},
- {label:"我处理的"},
- {label:"我发起的"},
- ]
- }
- },
- onPullDownRefresh() {
- this.refresh();
- },
- onReachBottom() {
- this[getList].call(this, this[page], this.__pulldone);
- },
- methods:{
- refresh(){
- this[page]=1;
- this[getList].call(this, this[page], this.__pulldone);
- },
- __pulldone(data){
- var db = data || [];
- if (this[page] == 1) {
- this[listData] = db;
- } else {
- this[listData] = (this[listData] || []).concat(db);
- }
- uni.stopPullDownRefresh();
- this[page]++;
- },
-
- /**
- * @name 动态开启或关闭pulldown
- * @params {boolean} isOpen
- */
- setPullDown(isOpen){
- // #ifdef APP-PLUS
- const pages = getCurrentPages();
- const page = pages[pages.length - 1];
- var currentWebview = page.$getAppWebview();
- currentWebview.setStyle({//设置当前webview的style
- pullToRefresh: {
- support: isOpen ,
- style: plus.os.name === 'Android' ? 'circle' : 'default'
- }
- });
- // #endif
- },
-
- /**
- * @name 开始滑动
- */
- touchstart(e){
- startPoint={
- pageX:e.pageX||e.changedTouches[0].pageX,
- pageY:e.pageY||e.changedTouches[0].pageY,
- }
- },
-
- /**
- * @name 滑动结束
- */
- touchend(e){
- endPoint={
- pageX:e.mp.changedTouches[0].pageX,
- pageY:e.mp.changedTouches[0].pageY,
- }
- // 判断是左滑动还是右滑动 当横向位移大于10,纵向位移大于100,则判定为滑动事件
- var disX=endPoint.pageX-startPoint.pageX;//计算移动的位移差
- var disY=endPoint.pageY-startPoint.pageY;
- if(Math.abs(disX)>10||Math.abs(disY)>100){
- if(Math.abs(disX)>Math.abs(disY)){//判断是横向滑动还是纵向滑动
- if(disX>10){
- this.swiperight()//右滑
- };
- if(disX<-10){
- this.swipeleft()//左滑
- };
- }
- }
- },
-
- /**
- * @name 向左滑动
- */
- swipeleft(){
- if(this[initIndex]<this[modelData].length-1)this[initIndex]++
- console.log("左滑");
- },
-
- /**
- * @name 监听右滑
- */
- swiperight(){
- if(this[initIndex]>0)this[initIndex]--
- console.log("右滑");
- },
- }
- }
- }
|