<template>
	<view class="">
		<u-cell-group :border="true">
			<u-cell
			    :border="true"
			    title="基础用法"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value1"
				    step="1"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="步长设置"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value2"
				    :step="step1"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="限制输入范围"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value3"
				    step="1"
				    :min="min1"
				    :max="max1"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="限制输入整数"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value4"
				    step="1"
				    integer
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="禁用状态"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value5"
				    step="1"
				    :disabled="true"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="禁用输入框"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value6"
				    step="1"
				    :disabledInput="true"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="禁用长按"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value7"
				    step="1"
				    :longPress="false"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="固定小数位数"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value8"
				    step="0.2"
				    decimalLength="1"
				    @change="change"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="异步变更"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value9"
				    step="1"
				    :asyncChange="asyncChange"
				    @change="myAsyncChange"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="自定义大小颜色样式"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value10"
				    step="1"
				    :color="color"
				    :buttonSize="buttonSize"
				    :bgColor="bgColor"
				    @change="change"
				    iconStyle="color: #fff"
				>
				</u-number-box>
			</u-cell>
			<u-cell
			    :border="true"
			    title="自定义(为0时减少按钮会消失)"
			>
				<u-number-box
				    slot="right-icon"
				    v-model="value11"
				    step="1"
				    :min="0"
				    :showMinus="value11 > 0"
				>
					<view
					    slot="minus"
					    class="minus"
					>
						<u-icon
						    name="minus"
						    size="12"
						></u-icon>
					</view>
					<text
					    slot="input"
					    style="width: 50px;text-align: center;"
					    class="input"
					>{{value11}}</text>
					<view
					    slot="plus"
					    class="plus"
					>
						<u-icon
						    name="plus"
						    color="#FFFFFF"
						    size="12"
						></u-icon>
					</view>
				</u-number-box>
			</u-cell>
		</u-cell-group>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				value1: 3,
				value2: 3,
				value3: 3,
				value4: 3,
				value5: 3,
				value6: 3,
				value7: 3,
				value8: 3.1,
				value9: 3,
				value10: 3,
				value11: 3,
				step1: 2,
				min1: 5,
				max1: 8,
				asyncChange: true,
				color: '#FFFFFF',
				buttonSize: 36,
				bgColor: '#2979ff'
			}
		},
		methods: {
			change(e) {
				console.log('change', e);
			},
			myAsyncChange(e) {
				this.asyncChange = false
				uni.showLoading({
					title: '正在加载'
				})
				setTimeout(() => {
					uni.hideLoading()
					this.value9 = e
					this.asyncChange = true
				}, 3000)
			}
		}
	}
</script>

<style lang="scss">
	.minus {
		width: 22px;
		height: 22px;
		border-width: 1px;
		border-color: #E6E6E6;
		border-top-left-radius: 100px;
		border-top-right-radius: 100px;
		border-bottom-left-radius: 100px;
		border-bottom-right-radius: 100px;
		@include flex;
		justify-content: center;
		align-items: center;
	}

	.input {
		padding: 0 10px;
	}

	.plus {
		width: 22px;
		height: 22px;
		background-color: #FF0000;
		border-radius: 50%;
		/* #ifndef APP-NVUE */
		display: flex;
		/* #endif */
		justify-content: center;
		align-items: center;
	}
</style>
