更新记录

1.0.0(2026-07-03) 下载此版本

初始版本


平台兼容性

uni-app(4.0)

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

zv-numeric-keypad

数字键盘组件,支持手机号、金额、身份证、数字密码等多种模式,默认隐藏,从底部弹出。

基础用法

<zv-numeric-keypad v-model="mobile" mode="phone" />

参数说明

参数 类型 默认值 说明
modelValue / v-model String '' 绑定值
visible / v-model:visible Boolean false 是否显示键盘
mode String phone 键盘模式,见下方
placeholder String '' 占位文字
contentStyle String '' 内置触发区域样式
trigger Boolean true 是否显示内置触发区域,设为 false 时仅通过 visibleref 控制
showPoint Boolean 随 mode 是否显示小数点键
showDelete Boolean true 是否显示删除键
showConfirm Boolean false 是否显示确认键;为 true 时仅点击确认后回传数据
showPreview Boolean true 是否在键盘顶部显示输入预览
maxLength Number 随 mode 最大输入长度,0 表示不限制
deleteText String '' 删除键文字,为空时显示 ⌫
deleteStyle String '' 删除键自定义样式(行内 style)
deleteActiveStyle String '' 删除键按下时的自定义样式
confirmText String 确认 确认键文字
confirmStyle String '' 确认键自定义样式(行内 style)
confirmActiveStyle String '' 确认键按下时的自定义样式

mode 模式

mode 说明 默认特性
phone 手机号键盘 纯数字,最多 11 位,无小数点
amount 金额键盘 支持小数点,最多 2 位小数
idcard 身份证键盘 18 位,末位可为 X
password 数字密码键盘 纯数字,预览脱敏显示
passwordChaos 乱序数字密码键盘 同 password,每次打开随机打乱数字

事件

事件 说明 回调参数
change 值变化(无确认键时实时触发,有确认键时点击确认触发) (value)
confirm 点击确认 (value)
open 键盘打开
close 键盘关闭
update:modelValue v-model 更新 (value)
update:visible v-model:visible 更新 (visible)

方法(通过 ref 调用)

方法 说明
open() 打开键盘
close() 关闭键盘
toggle() 切换显示/隐藏

使用示例

基础:点击触发区域弹出

<template>
    <view>
        <zv-numeric-keypad
            v-model="mobile"
            mode="phone"
            placeholder="请输入手机号"
            :contentStyle="contentStyle"
        />
    </view>
</template>

<script>
export default {
    data() {
        return {
            mobile: '',
            contentStyle: 'line-height: 100rpx; text-align: right;'
        }
    }
}
</script>

通过 visible 控制显示

<zv-numeric-keypad
    v-model="price"
    v-model:visible="showKeypad"
    mode="amount"
    :trigger="false"
/>

<button @click="showKeypad = true">打开金额键盘</button>

通过 ref 手动调用

<zv-numeric-keypad ref="keypad" v-model="password" mode="passwordChaos" :trigger="false" />

<button @click="$refs.keypad.open()">打开密码键盘</button>

确认后回传

<zv-numeric-keypad
    v-model="idcard"
    mode="idcard"
    :showConfirm="true"
    @confirm="onConfirm"
/>

各模式示例

<!-- 手机号 -->
<zv-numeric-keypad v-model="mobile" mode="phone" placeholder="请输入手机号" />

<!-- 金额(可关闭小数点) -->
<zv-numeric-keypad v-model="price" mode="amount" :showPoint="true" />

<!-- 身份证 -->
<zv-numeric-keypad v-model="idcard" mode="idcard" />

<!-- 数字密码 -->
<zv-numeric-keypad v-model="pwd" mode="password" :maxLength="6" />

<!-- 乱序密码 -->
<zv-numeric-keypad v-model="pwd" mode="passwordChaos" :showConfirm="true" />

自定义删除 / 确认键样式

<zv-numeric-keypad
    v-model="mobile"
    mode="phone"
    :showConfirm="true"
    deleteText="删除"
    :deleteStyle="deleteStyle"
    :deleteActiveStyle="deleteActiveStyle"
    confirmText="完成"
    :confirmStyle="confirmStyle"
    :confirmActiveStyle="confirmActiveStyle"
/>
data() {
    return {
        deleteStyle: 'color: #ff3b30; font-size: 28rpx; background: #fff; border-radius: 16rpx; box-shadow: 0 6rpx 0 #e5e5e5;',
        deleteActiveStyle: 'color: #ff3b30; font-size: 28rpx; background: #f0f0f0; border-radius: 16rpx; transform: translateY(6rpx);',
        confirmStyle: 'color: #fff; font-size: 32rpx; background: linear-gradient(180deg, #ff6b6b, #ee5253); border-radius: 16rpx; box-shadow: 0 6rpx 0 #c0392b;',
        confirmActiveStyle: 'color: #fff; font-size: 32rpx; background: #ee5253; border-radius: 16rpx; transform: translateY(6rpx); box-shadow: 0 2rpx 6rpx rgba(238,82,83,0.3);'
    }
}

也可通过 slot 完全自定义按钮内容:

<zv-numeric-keypad v-model="mobile" mode="phone" :showConfirm="true">
    <template #delete>
        <image src="/static/delete.png" style="width: 48rpx; height: 48rpx;" />
    </template>
    <template #confirm>
        <text style="color: #fff;">提交</text>
    </template>
</zv-numeric-keypad>

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。