test.vue 4.75 KB
<template>
	<view class="u-page">
		<view class="u-demo-block">
			<text class="u-demo-block__title">基础使用</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="surround"
					v-model="value"
					@change="change"
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">可清空内容</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="surround"
					clearable
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">数字键盘</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="surround"
					type="number"
					clearable
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">密码类型</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="surround"
					password
					clearable
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">显示下划线</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="bottom"
					clearable
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">禁用状态</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="禁用状态"
					border="surround"
					disabled
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">圆形</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="请输入内容"
					border="surround"
					shape="circle"
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">前后图标</text>
			<view class="u-demo-block__content">
				<u--input
					placeholder="前置图标"
					prefixIcon="search"
					prefixIconStyle="font-size: 22px;color: #909399"
				></u--input>
			</view>
			<view
				class="u-demo-block__content"
				style="margin-top: 15px;"
			>
				<u--input
					placeholder="后置图标"
					suffixIcon="map-fill"
					suffixIconStyle="color: #909399"
				></u--input>
			</view>
		</view>
		<view class="u-demo-block">
			<text class="u-demo-block__title">前后插槽</text>
			<view class="u-demo-block__content">
				<!-- 注意:由于兼容性差异,如果需要使用前后插槽,nvue下需使用u--input,非nvue下需使用u-input -->
				<!-- #ifndef APP-NVUE -->
				<u-input placeholder="前置插槽">
					<!-- #endif -->
					<!-- #ifdef APP-NVUE -->
					<u--input placeholder="前置插槽">
						<!-- #endif -->
						<u--text
							text="http://"
							slot="prefix"
							margin="0 3px 0 0"
							type="tips"
						></u--text>
						<!-- #ifndef APP-NVUE -->
				</u-input>
				<!-- #endif -->
				<!-- #ifdef APP-NVUE -->
				</u--input>
				<!-- #endif -->
			</view>
			<view
				class="u-demo-block__content"
				style="margin-top: 15px;"
			>
				<!-- 注意:由于兼容性差异,如果需要使用前后插槽,nvue下需使用u--input,非nvue下需使用u-input -->
				<!-- #ifndef APP-NVUE -->
				<u-input placeholder="后置插槽">
					<!-- #endif -->
					<!-- #ifdef APP-NVUE -->
					<u--input placeholder="后置插槽">
						<!-- #endif -->
						<template slot="suffix">
							<u-code
								ref="uCode"
								@change="codeChange"
								seconds="20"
								changeText="X秒重新获取哈哈哈"
							></u-code>
							<u-button
								@tap="getCode"
								:text="tips"
								type="success"
								size="mini"
							></u-button>
						</template>
						<!-- #ifndef APP-NVUE -->
				</u-input>
				<!-- #endif -->
				<!-- #ifdef APP-NVUE -->
				</u--input>
				<!-- #endif -->
			</view>
		</view>
		<u-gap
			bgColor="#fff"
			height="50"
		></u-gap>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				tips: '',
				value: ''
			}
		},
		watch: {
			value(newValue, oldValue) {
				// console.log('v-model', newValue);
			}
		},
		methods: {
			codeChange(text) {
				this.tips = text;
			},
			getCode() {
				if (this.$refs.uCode.canGetCode) {
					// 模拟向后端请求验证码
					uni.showLoading({
						title: '正在获取验证码'
					})
					setTimeout(() => {
						uni.hideLoading();
						// 这里此提示会被this.start()方法中的提示覆盖
						uni.$u.toast('验证码已发送');
						// 通知验证码组件内部开始倒计时
						this.$refs.uCode.start();
					}, 2000);
				} else {
					uni.$u.toast('倒计时结束后再发送');
				}
			},
			change(e) {
				console.log('change', e);
			}
		}
	}
</script>

<style lang="scss">

</style>