vue3实现短信验证码组件

短信验证码

基础用法

vue 复制代码
<sms-code :before-click="handleBeforeCode" :on-success="handleSuccess" style="margin-left: 10px"></sms-code>
html 复制代码
<div style="width: 100%; display: flex; flex-wrap: nowrap; align-items: center">
    <el-input v-model="forms.smsCode" clearable placeholder="请输入验证码" maxlength="6" />
    <sms-code :before-click="handleBeforeCode" style="--btn-height: 30px;margin-left: 10px"></sms-code>
</div>
js 复制代码
// 场景一:发送验证码前需要验证表单字段
const handleBeforeCode = async () => {
    return new Promise((resolve, reject) => {
        formRef1.value.validateField(["phone"], async (valid, fields) => {
            if (valid) {
                // 发送短信接口参数
                let data = {
                    phone: forms.value.phone,
                    type: "2",
                };
                resolve(data);
            }
        });
    });
};
// 场景二:不需要验证表单直接发送
const handleBeforeCode = async () => {
    return {
        phone: forms.value.phone,
        type: "2",
    };
};
// 监听发送成功回调
const handleSuccess = (res) => {
    if (res && res.code == "0") {
        console.log("短信发送成功!");
    } else if (res && res.code != "0") {
        console.log("短信发送失败!");
    }
};
属性名 说明 类型 默认值 可选值
type 类型 string button text
time 倒计时时间 Number 60
isVertify 是否安全验证 boolean true
before-click 发送验证码前的回调函数 Function ---
on-success 发送成功的回调函数 Function ---
--style ---------------------- ---------- ------ ------
--btn-width 按钮宽度 - ---
--btn-height 按钮高度 - ---
--btn-bg-color 按钮背景颜色 - ---
--btn-text-color 按钮文字颜色 - ---

组件代码

创建组件时,在components目录下创建SmsCode文件夹,然后创建index.vue粘贴组件代码

  • 组件代码里包含了滑块安全验证组件,详细使用参考滑块安全验证组件

相关推荐
data analyse 4564 分钟前
服务端访问日志聚合 PV 与 UV 怎么实现?日志采集与口径设计
大数据·前端·数据分析
song5015 分钟前
React Native for OpenHarmony 实战:三方库 react-native-ratings 的鸿蒙化适配指南
javascript·react native·react.js·分类·harmonyos
JavaGuide9 分钟前
DeepSeek Harness 重磅更新,Codex、Claude Code 子智能体进官方插件列表了,还有 Git 工作树和思考翻译!
前端·后端
WeiXin_DZbishe23 分钟前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小羊没烦恼!25 分钟前
OS X 上使用.NET开发应用程序
开发语言·前端·数据库·人工智能·c#·策略模式
朱包林26 分钟前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
高级程序源42 分钟前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
高级程序源1 小时前
springboot社区旧物回收管理系统25381-计算机课程设计、毕业设计
vue.js·spring boot·python·django·课程设计
高级程序源1 小时前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
谢亮_vipxieliang1 小时前
JavaScript this 指向完全指南:调用位置决定一切
开发语言·javascript·ecmascript