mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| var pullDown = {
 | |
|     threshold: 95,
 | |
|     maxHeight: 200,
 | |
|     callRefresh: 'onrefresh',
 | |
|     callPullingDown: 'onpullingdown',
 | |
|     refreshSelector: '.uni-refresh'
 | |
| };
 | |
| 
 | |
| function ready(newValue, oldValue, ownerInstance, instance) {
 | |
|     var state = instance.getState()
 | |
|     state.canPullDown = newValue;
 | |
|     // console.log(newValue);
 | |
| }
 | |
| 
 | |
| function touchStart(e, instance) {
 | |
|     var state = instance.getState();
 | |
|     state.refreshInstance = instance.selectComponent(pullDown.refreshSelector);
 | |
|     state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined);
 | |
|     if (!state.canPullDown) {
 | |
|         return
 | |
|     }
 | |
| 
 | |
|     // console.log("touchStart");
 | |
| 
 | |
|     state.height = 0;
 | |
|     state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY;
 | |
|     state.refreshInstance.setStyle({
 | |
|         'height': 0
 | |
|     });
 | |
|     state.refreshInstance.callMethod("onchange", true);
 | |
| }
 | |
| 
 | |
| function touchMove(e, ownerInstance) {
 | |
|     var instance = e.instance;
 | |
|     var state = instance.getState();
 | |
|     if (!state.canPullDown) {
 | |
|         return
 | |
|     }
 | |
| 
 | |
|     var oldHeight = state.height;
 | |
|     var endY = e.touches[0].pageY || e.changedTouches[0].pageY;
 | |
|     var height = endY - state.touchStartY;
 | |
|     if (height > pullDown.maxHeight) {
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     var refreshInstance = state.refreshInstance;
 | |
|     refreshInstance.setStyle({
 | |
|         'height': height + 'px'
 | |
|     });
 | |
| 
 | |
|     height = height < pullDown.maxHeight ? height : pullDown.maxHeight;
 | |
|     state.height = height;
 | |
|     refreshInstance.callMethod(pullDown.callPullingDown, {
 | |
|         height: height
 | |
|     });
 | |
| }
 | |
| 
 | |
| function touchEnd(e, ownerInstance) {
 | |
|     var state = e.instance.getState();
 | |
|     if (!state.canPullDown) {
 | |
|         return
 | |
|     }
 | |
| 
 | |
|     state.refreshInstance.callMethod("onchange", false);
 | |
| 
 | |
|     var refreshInstance = state.refreshInstance;
 | |
|     if (state.height > pullDown.threshold) {
 | |
|         refreshInstance.callMethod(pullDown.callRefresh);
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     refreshInstance.setStyle({
 | |
|         'height': 0
 | |
|     });
 | |
| }
 | |
| 
 | |
| function propObserver(newValue, oldValue, instance) {
 | |
|     pullDown = newValue;
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|     touchmove: touchMove,
 | |
|     touchstart: touchStart,
 | |
|     touchend: touchEnd,
 | |
|     propObserver: propObserver
 | |
| }
 | 
