¶Ô±ÈÐÂÎļþ |
| | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue'; |
| | | |
| | | const maxlength = ref(4); |
| | | const value = ref(''); |
| | | const second = ref(3); |
| | | const show = ref(false); |
| | | const error = ref(false); |
| | | |
| | | onMounted(() => { |
| | | let interval = setInterval(() => { |
| | | second.value--; |
| | | if (second.value <= 0) { |
| | | show.value = true; |
| | | if (value.value.length !== 4) { |
| | | error.value = true; |
| | | } |
| | | clearInterval(interval); |
| | | } |
| | | }, 1000); |
| | | }); |
| | | |
| | | const noCaptcha = () => { |
| | | uni.showActionSheet({ |
| | | itemList: ['éæ°è·åéªè¯ç ', 'æ¥å¬è¯é³éªè¯ç '], |
| | | success: function (res) { |
| | | // å¤çæåé»è¾ |
| | | }, |
| | | fail: function (res) { |
| | | // å¤ç失败é»è¾ |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const change = (value) => { |
| | | // console.log('change', value); |
| | | }; |
| | | |
| | | const finish = (value) => { |
| | | // console.log('finish', value); |
| | | }; |
| | | </script> |
| | | <template> |
| | | <view class="wrap"> |
| | | <view class="key-input"> |
| | | <view class="title">è¾å
¥éªè¯ç </view> |
| | | <view class="tips">éªè¯ç å·²åéè³ +150****9320</view> |
| | | <u-message-input :focus="true" :value="value" @change="change" @finish="finish" mode="bottomLine" |
| | | :maxlength="maxlength"></u-message-input> |
| | | <text :class="{ error: error }">éªè¯ç é误ï¼è¯·éæ°è¾å
¥</text> |
| | | <view class="captcha"> |
| | | <text :class="{ noCaptcha: show }" @tap="noCaptcha">æ¶ä¸å°éªè¯ç ç¹è¿é</text> |
| | | <text :class="{ regain: !show }">{{ second }}ç§åéæ°è·åéªè¯ç </text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .wrap { |
| | | padding: 80rpx; |
| | | } |
| | | |
| | | .box { |
| | | margin: 30rpx 0; |
| | | font-size: 30rpx; |
| | | color: 555; |
| | | } |
| | | |
| | | .key-input { |
| | | padding: 30rpx 0; |
| | | |
| | | text { |
| | | display: none; |
| | | } |
| | | |
| | | .error { |
| | | display: block; |
| | | color: red; |
| | | font-size: 30rpx; |
| | | margin: 20rpx 0; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-size: 50rpx; |
| | | color: #333; |
| | | } |
| | | |
| | | .key-input .tips { |
| | | font-size: 30rpx; |
| | | color: #333; |
| | | margin-top: 20rpx; |
| | | margin-bottom: 60rpx; |
| | | } |
| | | |
| | | .captcha { |
| | | color: $u-warning; |
| | | font-size: 30rpx; |
| | | margin-top: 40rpx; |
| | | |
| | | .noCaptcha { |
| | | display: block; |
| | | } |
| | | |
| | | .regain { |
| | | display: block; |
| | | } |
| | | } |
| | | </style> |