forked from angelo/web-retail-h5
				
			
		
			
	
	
		
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <template> | ||
|  | 	<view | ||
|  | 		class="u-slider" | ||
|  | 		:style="[$u.addStyle(customStyle)]" | ||
|  | 	> | ||
|  | 		<slider | ||
|  | 			:min="min" | ||
|  | 			:max="max" | ||
|  | 			:step="step" | ||
|  | 			:value="value" | ||
|  | 			:activeColor="activeColor" | ||
|  | 			:inactiveColor="inactiveColor" | ||
|  | 			:blockSize="$u.getPx(blockSize)" | ||
|  | 			:blockColor="blockColor" | ||
|  | 			:showValue="showValue" | ||
|  | 			:disabled="disabled" | ||
|  | 			@changing="changingHandler" | ||
|  | 			@change="changeHandler" | ||
|  | 		></slider> | ||
|  | 	</view> | ||
|  | </template> | ||
|  | 
 | ||
|  | <script> | ||
|  | 	import props from './props.js' | ||
|  | 	export default { | ||
|  | 		name: 'u--slider', | ||
|  | 		mixins: [uni.$u.mpMixin, uni.$u.mixin, props], | ||
|  | 		methods: { | ||
|  | 			// 拖动过程中触发
 | ||
|  | 			changingHandler(e) { | ||
|  | 				const { | ||
|  | 					value | ||
|  | 				} = e.detail | ||
|  | 				// 更新v-model的值
 | ||
|  | 				this.$emit('input', value) | ||
|  | 				// 触发事件
 | ||
|  | 				this.$emit('changing', value) | ||
|  | 			}, | ||
|  | 			// 滑动结束时触发
 | ||
|  | 			changeHandler(e) { | ||
|  | 				const { | ||
|  | 					value | ||
|  | 				} = e.detail | ||
|  | 				// 更新v-model的值
 | ||
|  | 				this.$emit('input', value) | ||
|  | 				// 触发事件
 | ||
|  | 				this.$emit('change', value) | ||
|  | 			} | ||
|  | 		}, | ||
|  | 	} | ||
|  | </script> | ||
|  | 
 | ||
|  | <style lang="scss" scoped> | ||
|  | 	@import "../../libs/css/components.scss"; | ||
|  | </style> |