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>
 |