APICloud AVM框架封装验证码输入框组件

简介: APICloud AVM框架封装验证码输入框组件实例。验证码输入框组件,可自定义下次点击等待时长,自定义验证码长度,可根据自定义的验证码长度进行输入内容的验证。

APICloud AVM框架封装验证码输入框组件实例。

验证码输入框组件,可自定义下次点击等待时长,自定义验证码长度,可根据自定义的验证码长度进行输入内容的验证。

组件引用

import '../../components/verification-code-input.stml'

组件使用

组件文件

verification-code-input.stml

获取验证码

{count}s

export default {

name: 'verification-code-input',

installed(){

},

props:{

limitSecond:Number,

limitCode:Number

},

data() {

return{

show:true,

count: 0,

timer:null

}

},

methods: {

sendCode(){

//正则验证手机号码

const TIME_COUNT = this.props.limitSecond;

if (!this.data.timer) {

this.data.count = TIME_COUNT;

this.data.show = false;

this.data.timer = setInterval(() => {

if (this.data.count > 0 && this.data.count <= TIME_COUNT) {

this.data.count--;

} else {

this.data.show = true;

clearInterval(this.data.timer);

this.data.timer = null;

}

}, 1000)

}

/**

  • 进行发送短信验证码的操作

*/

},

getCode(e){

//对验证码进行校验 符合位置和规则进行输出

if(e.detail.value.length == this.props.limitCode){

let reg= /^[0-9]*$/;

if(reg.test(e.detail.value)){

this.fire('setCode',e.detail.value);

}

else{

api.toast({

msg:'请输入有效的验证码!'

})

}

}

else if(e.detail.value.length > this.props.limitCode){

api.toast({

msg:'请输入'+this.props.limitCode+"位验证码!"

})

}

}

}

}

.verification-code{

flex-flow: row nowrap;

margin: 10px 20px;

justify-content: space-between;

border-bottom: 0.5px solid #f0f0f0;

align-items: center;

}

.code-input{

width: auto;

border: none;

font-size: 18px;

}

.code-btn{

color: #1492ff;

font-size: 18px;

}

组件使用示例

import '../../components/verification-code-input.stml'

export default {

name: 'demo-verification-code-input',

apiready(){

},

data() {

return{

code:'',

seconds:60,

codeLen:4

}

},

methods: {

getCode(e){

console.log(JSON.stringify(e.detail));

this.data.code = e.detail;

}

}

}

.page {

height: 100%;

background-color: #ffffff;

padding-top: 100px;

}

.verification-code{

flex-flow: row nowrap;

margin: 10px 20px;

justify-content: space-between;

border-bottom: 0.5px solid #f0f0f0;

align-items: center;

}

.code-input{

width: auto;

border: none;

font-size: 15px;

flex: 1;

}

.code-btn{

color: #1492ff;

font-size: 15px;

}

目录
相关文章
|
5月前
|
JavaScript
|
4月前
|
JSON Java 数据库
基于uniapp原生组件uni-ui 做一个登录注册与个人中心(后端篇)
基于uniapp原生组件uni-ui 做一个登录注册与个人中心(后端篇)
122 2
|
4月前
|
移动开发 API
uniapp中uview组件丰富的Code 验证码输入框的使用方法
uniapp中uview组件丰富的Code 验证码输入框的使用方法
171 0
|
5月前
|
JSON 小程序 前端开发
微信小程序(十四)小程序自定义弹窗组件
上一篇中说的是小程序自带的弹窗组件,今天,我们来试试小程序的自定义组件,我们自定义一个带确定取消的弹窗组件。 首先,放一下,最终的效果图:
225 0
|
9月前
|
JavaScript 前端开发
自己动手封装弹窗组件
自己动手封装弹窗组件
127 2
|
10月前
|
C# Android开发
Blazor如何实现类似于微信的Tab切换?
Blazor如何实现类似于微信的Tab切换?
71 0
|
小程序 前端开发 JavaScript
【小程序开发】—— 封装自定义弹窗组件
【小程序开发】—— 封装自定义弹窗组件
147 0
【小程序开发】—— 封装自定义弹窗组件
|
小程序 前端开发 API
【uniapp小程序开发】—— 组件封装之【自定义轮播图】
【uniapp小程序开发】—— 组件封装之【自定义轮播图】
275 0
【uniapp小程序开发】—— 组件封装之【自定义轮播图】
|
前端开发
「前端组件开发」越折腾越有趣,封装了一个表单组件
最近折腾代码简洁之路,先折腾了详情页,最近准备折腾一下表单组件,准备二次封装,提升代码复用率。
243 1
|
前端开发
前端工作总结149-封装一个带有对话框的button组件
前端工作总结149-封装一个带有对话框的button组件
64 0