128 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
| <template>
 | ||
| 	<view class="u-demo">
 | ||
| 		<view class="u-demo-wrap">
 | ||
| 			<view class="u-demo-title">演示效果</view>
 | ||
| 			<view class="u-demo-area">
 | ||
| 				<u-toast ref="uToast"></u-toast>
 | ||
| 				<u-slider :step="step" :height="height" :block-width="blockWidth" 
 | ||
| 					:active-color="activeColor" :value="30" 
 | ||
| 					:use-slot="useSlot" v-model="value"
 | ||
| 					:min="min" :max="max" 
 | ||
| 					@end="end"
 | ||
| 					@moving="moving"
 | ||
| 				>
 | ||
| 					<!-- #ifndef MP-WEIXIN || MP-TOUTIAO -->
 | ||
| 					<view class="" v-if="useSlot">
 | ||
| 						<view class="badge-button">
 | ||
| 							{{value}}
 | ||
| 						</view>
 | ||
| 					</view>
 | ||
| 					<!-- #endif -->
 | ||
| 				</u-slider>
 | ||
| 				<view class="u-demo-result-line">
 | ||
| 					滑块值:{{value}}
 | ||
| 				</view>
 | ||
| 			</view>
 | ||
| 		</view>
 | ||
| 		<view class="u-config-wrap">
 | ||
| 			<view class="u-config-title u-border-bottom">参数配置</view>
 | ||
| 			<view class="u-config-item">
 | ||
| 				<view class="u-item-title">自定义颜色</view>
 | ||
| 				<u-subsection vibrateShort :list="['primary', 'warning', 'error', 'success']" @change="typeChange"></u-subsection>
 | ||
| 			</view>
 | ||
| 			<!-- #ifndef MP-WEIXIN -->
 | ||
| 			<view class="u-config-item">
 | ||
| 				<view class="u-item-title">自定义传入内容</view>
 | ||
| 				<u-subsection vibrateShort current="1" :list="['是', '否']" @change="slotChange"></u-subsection>
 | ||
| 			</view>
 | ||
| 			<!-- #endif -->
 | ||
| 			<view class="u-config-item">
 | ||
| 				<view class="u-item-title">自定义尺寸</view>
 | ||
| 				<u-subsection vibrateShort current="1" :list="['是', '否']" @change="sizeChange"></u-subsection>
 | ||
| 			</view>
 | ||
| 			<view class="u-config-item">
 | ||
| 				<view class="u-item-title">步进值</view>
 | ||
| 				<u-subsection vibrateShort :list="['1', '10', '20']" @change="stepChange"></u-subsection>
 | ||
| 			</view>
 | ||
| 			<view class="u-config-item">
 | ||
| 				<view class="u-item-title">最大最小值</view>
 | ||
| 				<u-subsection vibrateShort :list="['0-100', '40-80']" @change="minMaxchange"></u-subsection>
 | ||
| 			</view>
 | ||
| 		</view>
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 	export default {
 | ||
| 		data() {
 | ||
| 			return {
 | ||
| 				value: 30,
 | ||
| 				useSlot: false,
 | ||
| 				setp: 1,
 | ||
| 				activeColor: '#2979ff',
 | ||
| 				height: 6,
 | ||
| 				blockWidth: 30,
 | ||
| 				step: 1,
 | ||
| 				min: 0,
 | ||
| 				max: 100
 | ||
| 			};
 | ||
| 		},
 | ||
| 		onLoad() {
 | ||
| 			
 | ||
| 		},
 | ||
| 		computed: {
 | ||
| 			current() {
 | ||
| 				return this.show ? 0 : 1;
 | ||
| 			}
 | ||
| 		},
 | ||
| 		methods: {
 | ||
| 			typeChange(index) {
 | ||
| 				let type = ['primary', 'warning', 'error', 'success'];
 | ||
| 				this.activeColor = this.$u.color[type[index]];
 | ||
| 			},
 | ||
| 			sizeChange(index) {
 | ||
| 				if(index == 0) {
 | ||
| 					this.height = 4;
 | ||
| 					this.blockWidth = 30;
 | ||
| 				} else {
 | ||
| 					this.height = 6;
 | ||
| 					this.blockWidth = 20;
 | ||
| 				}
 | ||
| 			},
 | ||
| 			stepChange(index) {
 | ||
| 				let arr = ['1', '10', '20'];
 | ||
| 				this.step = arr[index];
 | ||
| 			},
 | ||
| 			slotChange(index) {
 | ||
| 				this.useSlot = !index;
 | ||
| 			},
 | ||
| 			minMaxchange(index) {
 | ||
| 				if(index == 0) {
 | ||
| 					this.min = 0;
 | ||
| 					this.max = 100;
 | ||
| 				} else {
 | ||
| 					this.min = 40;
 | ||
| 					this.max = 80;
 | ||
| 				}
 | ||
| 			},
 | ||
| 			end() {
 | ||
| 				// console.log('end');
 | ||
| 			},
 | ||
| 			moving() {
 | ||
| 				// console.log('moving');
 | ||
| 			}
 | ||
| 		}
 | ||
| 	};
 | ||
| </script>
 | ||
| 
 | ||
| <style scoped lang="scss">
 | ||
| 	.badge-button {
 | ||
| 		padding: 4rpx 6rpx;
 | ||
| 		background-color: $u-type-error;
 | ||
| 		color: #fff;
 | ||
| 		border-radius: 10rpx;
 | ||
| 		font-size: 22rpx;
 | ||
| 		line-height: 1;
 | ||
| 	}
 | ||
| </style>
 |