123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <template>
- <view class="wrap">
- <view class="key-input">
- <view class="title">输入验证码</view>
- <view class="tips">验证码已发送至 +{{tel}}</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>
- <script>
- export default {
- data() {
- return {
- maxlength: 4,
- value: '',
- second: 60,
- show: false,
- error: false,
- tel: ''
- };
- },
- computed: {},
- onLoad(page) {
- console.log(page)
- this.tel = page.tel
- // this.getCaptcha()
- let interval = setInterval(() => {
- this.second--;
- if (this.second <= 0) {
- this.show = true;
- if (this.value.lenth != 4) {
- this.error = true;
- }
- clearInterval(interval);
- }
- }, 1000);
- },
- methods: {
- // 收不到验证码选择时的选择
- noCaptcha() {
- uni.showActionSheet({
- itemList: ['重新获取验证码', '接听语音验证码'],
- success: function(res) {
-
- },
- fail: function(res) {
-
- }
- });
- },
- // change事件侦听
- change(value) {
- // console.log('change', value);
- },
- // 输入完验证码最后一位执行
- finish(value) {
- // console.log('finish', value);
- }
- }
- };
- </script>
- <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-type-warning;
- font-size: 30rpx;
- margin-top: 40rpx;
- .noCaptcha {
- display: block;
- }
- .regain {
- display: block;
- }
- }
- </style>
|