更新记录

1.0.1(2026-08-29) 下载此版本

‑ docs:更新README说明文档,补充参数说明

1.0.0(2026-08-29) 下载此版本

[1.0.0] - 2026‑08‑29

  • ✨ 首次发布 zxy‑pin-input 验证码 PIN 格子输入组件
  • ✨ 支持自定义输入长度、格子宽高、间距、边框粗细、圆角、主题色
  • ✨ 密码脱敏模式,输入内容显示圆点●
  • ✨ 自带闪烁光标,支持填满后光标定位至末尾格子
  • ✨ 紧凑零间距模式,悬浮分割线(无占位布局)
  • ✨ 单格子边框高亮聚焦效果
  • ✨ 内置超长值兜底截断防护,解决光标索引越界卡死问题
  • ✨ 完整回调事件:inputchangecompletefocusblurconfirm
  • ✨ 对外实例方法:getValue()clear()focusInput()
  • ✅ 兼容 Vue2 / Vue3,适配 H5、App‑Vue、微信 / 支付宝等主流小程序

平台兼容性

uni-app(3.8.2)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.1 1.0.1 - - 1.0.0 - 5.0 1.0.1 12 1.0.1 -
微信小程序 微信小程序插件版本 支付宝小程序 支付宝小程序插件版本 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
2.10.0 1.0.1 2.0.0 1.0.1 - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

zxy-pin-input

验证码PIN格子输入框,支持自定义尺寸、边框、间距、密码圆点模式、光标闪烁、紧凑分割线,兼容 Vue2 / Vue3,支持 H5、App、主流小程序。

✨ 特性

  • 自定义输入长度(常用4/6位验证码)
  • 可切换密码圆点脱敏模式
  • 自定义格子大小、字体大小、边框粗细、圆角、间距
  • 自定义文字颜色、边框色、聚焦色、光标颜色、分割线颜色
  • 内置闪烁光标,填满后光标自动定位到末尾
  • 紧凑无边框模式,支持格子间垂直分割线
  • 支持禁用、自动失焦、获取焦点、清空、获取值方法
  • 完整事件回调:input / change / complete / focus / blur / confirm

📦 安装

uni-app 插件市场导入,或者放到项目 uni_modules/zxy-pin-input

easycom 自动引入,无需 import,直接使用标签 <zxy-pin-input />

🚀 基础使用

<template>
    <view>
        <!-- 基础6位验证码 -->
        <zxy-pin-input :value="code" @complete="handleComplete" />
    </view>
</template>

<script>
export default {
    data() {
        return {
            code: ''
        }
    },
    methods: {
        // 输入完成回调
        handleComplete(value) {
            console.log('输入完成:', value)
        }
    }
}
</script>

🧩 完整示例(常用配置)

需要自定义样式时参考,不需要的属性可直接删除

<template>
    <view>
        <!-- 基础6位验证码 -->
        <zxy-pin-input length="6" slotSize="70" gutter="10" border="2" :assword="false" :disabled="false" :autoBlur="true" borderColor="#bfbfbf" focusColor="#007aff" textColor="#333" bgColor="#fff" cursorColor="#007aff" dividerColor="#ddd" borderRadius="8" fontSize="36" :focus="false" v-model="code" @input="onInput" @change="onChange" @complete="onComplete" @focus="onFocus" @blur="onBlur" @confirm="onConfirm"
        />
    </view>
</template>

<script>
export default {
    data() {
        return {
            code: ''
        }
    },
    methods: {
        // 输入完成回调
        handleComplete(value) {
            console.log('输入完成:', value)
        }
    }
}
</script>

📋 Props 参数说明

参数 类型 默认值 说明
value String 绑定值
length Number/String 6 输入框位数
slotSize Number/String 70 单个格子边长大小(rpx)
slotWidth Number/String null 格子单独宽度(rpx),不传则继承slotSize
slotHeight Number/String null 格子单独高度(rpx),不传则继承slotSize
gutter Number/String 10 格子之间间距(rpx)
border Number/String 0 边框粗细(rpx),0为无边框
password Boolean false 是否密码圆点脱敏 ●
disabled Boolean false 是否禁用
autoBlur Boolean false 填满后自动失焦
cursorColor String 光标颜色;优先级 cursorColor > focusColor > textColor
borderColor String #bfbfbf 默认边框颜色
textColor String #333 文字颜色
bgColor String #fff 格子背景色
focusColor String 聚焦时单个格子边框高亮色;仅 border>0 && gutter>0 时生效
dividerColor String #ddd 紧凑模式分割线颜色(border=0 && gutter=0生效)
borderRadius Number/String 0 格子圆角(rpx)
fontSize Number/String 32 文字大小(rpx)
focus Boolean false 是否自动获取焦点
wrapperZIndex Number/String '' 组件外层z‑index层级,解决被页面元素遮挡问题

📢 事件 Events

事件名 返回值 说明
input String 实时输入触发
change String 输入变更触发
complete String 全部位数输入完成触发
focus - 获取焦点
blur - 失去焦点
confirm String 键盘确认回车触发

🛠 组件实例方法(通过 ref 调用)

<zxy-pin-input ref="pinRef" />
方法名 参数 返回值 说明
getValue - String 获取当前输入值
clear - void 清空输入内容,重置光标
focusInput - void 手动唤起输入框获取焦点

💡 使用提示

  1. 紧凑分割线模式:设置 border="0"gutter="0",自动启用格子中间垂直分割线
  2. 输入类型内置 number,优先唤起数字键盘

📌 兼容平台

  • ✅ H5
  • ✅ App(Vue)
  • ✅ 微信小程序、支付宝小程序、头条小程序、QQ 小程序
  • ❌ nvue、uni-app-x 暂不支持

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。