更新记录

1.0.2(2025-05-14) 下载此版本

适配小程序

1.0.1(2025-05-14) 下载此版本

全面兼容vue3

1.0.0(2025-05-13) 下载此版本

实现vue2倒计时组件

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

jia-countdown-verify 验证码倒计时按钮组件

一个用于发送短信验证码的倒计时按钮组件,支持自定义样式、倒计时时间和文本内容。适用于各种需要验证码功能的表单场景。

特性

  • 支持自定义按钮样式(颜色、大小、圆角等)
  • 支持自定义倒计时时间
  • 支持自定义按钮文本
  • 支持手动触发和自动开始倒计时
  • 支持重置倒计时状态
  • 提供多种事件回调(发送、倒计时变化、结束)
  • 支持传递参数到事件回调中

安装方法

在 uni-app 插件市场中搜索 jia-countdown-verify 并导入到项目中。

基础用法

<template>
  <view>
    <jia-countdown-verify ref="countdownBtn" @send="onSend" />
  </view>
</template>

<script>
export default {
  methods: {
    onSend() {
      // 发送验证码逻辑
      // 成功后调用组件的 success 方法开始倒计时
      this.$refs.countdownBtn.success();
    }
  }
}
</script>

高级用法

使用 successVal 和 resetVal 控制倒计时

<template>
  <view>
    <input type="text" v-model="phone" placeholder="请输入手机号" />
    <jia-countdown-verify
      @send="sendCode"
      :successVal="successCount"
      :resetVal="resetCount"
    />
  </view>
</template>

<script>
export default {
  data() {
    return {
      phone: "",
      successCount: 0, // 成功计数器
      resetCount: 0, // 重置计数器
    };
  },
  methods: {
    sendCode() {
      // 验证手机号
      if (!/^1\d{10}$/.test(this.phone)) {
        uni.showToast({
          title: "请输入正确的手机号",
          icon: "none",
        });
        // 增加重置计数器触发重置
        this.resetCount++;
        return;
      }

      // 模拟API请求
      setTimeout(() => {
        // 发送成功,增加成功计数器触发倒计时
        this.successCount++;
      }, 1000);
    }
  }
}
</script>

API

Props

属性名 类型 默认值 说明
text String "发送验证码" 按钮默认文本
sendText String "请稍候..." 发送中的按钮文本
countdownText String "s后获取" 倒计时文本后缀
seconds Number 60 倒计时秒数
width String "182rpx" 按钮宽度
height String "56rpx" 按钮高度
padding String "0" 按钮内边距
margin String "0" 按钮外边距
radius String "6rpx" 按钮圆角
size Number 24 字体大小(rpx)
color String "#5677fc" 字体颜色
background String "transparent" 背景颜色
borderWidth String "1px" 边框宽度
borderColor String "#5677fc" 边框颜色
isOpacity Boolean true 倒计时状态是否透明
hover Boolean true 是否有点击效果
successVal Number/String 0 触发倒计时的值,值变化时开始倒计时
resetVal Number/String 0 重置倒计时的值,值变化时重置倒计时
start Boolean false 是否自动开始倒计时
params Number/String 0 传递给事件的参数
disabledColor String "" 禁用状态的背景颜色

Events

事件名 说明 回调参数
send 点击发送按钮时触发 { params: 传入的params值 }
countdown 倒计时变化时触发 { seconds: 剩余秒数, params: 传入的params值 }
end 倒计时结束时触发 { params: 传入的params值 }

Methods

方法名 说明 参数
success 开始倒计时 -
reset 重置倒计时状态 -

使用示例

默认使用

<jia-countdown-verify ref="sms1" @send="onSend" />

默认为倒计时状态

<jia-countdown-verify :start="true" @send="onSend" />

设置圆角

<jia-countdown-verify :radius="'20rpx'" @send="onSend" />

设置颜色

<jia-countdown-verify
  color="#fff"
  background="#000"
  borderWidth="0"
  @send="onSend"
/>

设置大小

<jia-countdown-verify
  :width="'300rpx'"
  :height="'60rpx'"
  @send="onSend"
/>

设置秒数

<jia-countdown-verify :seconds="120" @send="onSend" />

改变倒计时状态下颜色

<jia-countdown-verify
  background="#02B653"
  borderWidth="0"
  color="#fff"
  @send="onSend"
  disabledColor="#999"
/>

设置文本

<jia-countdown-verify
  text="发送验证码短信"
  countdownText="秒后可重发"
  @send="onSend"
/>

注意事项

  1. 当使用 ref 手动控制倒计时时,需要在发送验证码成功后调用 success() 方法开始倒计时
  2. 当使用 successValresetVal 控制倒计时时,只需改变这两个值即可触发相应操作
  3. 组件内部会在销毁时自动清除定时器,无需手动处理
  4. 倒计时过程中按钮会自动禁用,防止重复点击

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问