Skip to content

BizAmountKeyboard 金额数字键盘 ​

金额数字键盘:显示区实时千分位预览(空时 0.00 灰字占位)+ 右侧「清空」;4 列键盘(1-9 / . / 0 / 00 / 退格 / 清空 / 确认跨两行)。严格输入规则:前导 0 唯一(0 后只能输 .)、小数点唯一、小数位满 decimal-length 追加忽略、整数位达 integer-limit 截断 + error + 抖动、00 键超限截断;max-amount 输入中超限红字提示、确认时抖动拦截。支持 inline 直接渲染 / popup 底部弹层(Teleport + slide-up)、random-keys 数字乱序防偷窥。收银台、转账金额录入、POS 收款等触屏场景。

基础用法 ​

金额输入
0.00元

原始值(v-model):(空)(非千分位,如 1234.5)

inline 模式直接渲染;v-model 为金额原始字符串(非千分位),显示区实时千分位预览。

底部弹层 ​

已录入金额:(空)

mode="popup" 时 Teleport 到 body 的 fixed 底部弹层,v-model:visible 控制开合;确认或点击遮罩关闭,每次打开重洗乱序键盘。

乱序防偷窥 ​

金额输入
0.00元

数字 1-9 位置随机洗牌(0 / 00 / . 固定);popup 模式下每次打开弹层还会重新洗牌。

random-keys 开启后数字 1-9 位置洗牌(0 / 00 / . 固定),防止旁人记忆按键位置推算金额。

输入校验 ​

金额输入
0.00元

整数位上限 5 位:第 6 位数字被截断并抖动;金额上限 99,999 元:输入中超限红字提示,确认时抖动拦截。
最近一次 error:(无)
确认结果:(未确认)

integer-limit 整数位上限(超限截断 + 抖动 + error)与 max-amount 金额上限(输入中红字提示、确认拦截)。

小数位数 ​

0 位小数(「.」键禁用):(空)

金额输入
0元

1 位小数:(空)

金额输入
0.0元

3 位小数:(空)

金额输入
0.000元
decimal-length 支持 0~3 位小数:0 位时 . 键禁用,空占位分别为 0 / 0.0 / 0.000。

素色主题 ​

金额输入
0.00元

plain 主题:白底描边按键,悬浮主题色描边,适配浅色表单内嵌场景;当前值:(空)

theme="plain" 白底描边按键,适配浅色表单内嵌场景。

自定义显示区 ​

金额输入
充值金额0.00CNY

toolbar 插槽:单笔充值限额 50,000 元,请核对后确认

display 插槽替换金额显示区(作用域参数 amount 原始值 / display 千分位文本 / over-limit 超限标记)。

事件 ​

金额输入
0.00元

input 轨迹(最近 8 次):(无)
confirm:(未确认)
最近一次 error:(无)

input 每次输入变化(原始字符串)、confirm 确认、error 校验错误(integer-limit / decimal-limit / max-amount)回显。

自定义文案 ​

转入金额(元)
0.00元

title「转入金额(元)」、确认键文案「下一步」;当前值:(空)

title 标题与 confirm-text 确认键文案自定义。

Props ​

属性名类型默认值说明
v-modelstring | number''金额原始字符串(非千分位,如 '1234.5')
mode'inline' | 'popup''inline'展示模式:直接渲染 / 底部弹层
v-model:visiblebooleanfalsepopup 模式弹层开关
titlestring'金额输入'标题(popup 头部 / inline 标签行)
decimal-lengthnumber2小数位数 0~3;0 时 . 键禁用
integer-limitnumber7整数位上限;超限截断 + error + 抖动
max-amountnumber—金额上限(元);确认超限拦截
random-keysbooleanfalse数字 1-9 乱序(防偷窥)
theme'default' | 'plain''default'素色描边主题
confirm-textstring'确认'确认键文案
disabledbooleanfalse禁用全部按键

Events ​

事件名参数说明
update:modelValue(value: string)金额变化(原始字符串)
input(value: string)每次输入变化(原始字符串,非千分位)
confirm(value: string)确认(超限时拦截不触发)
error(err: { type: 'integer-limit' | 'decimal-limit' | 'max-amount'; message: string })校验错误
update:visible(value: boolean)popup 弹层开关变化

Slots ​

插槽名参数说明
display{ amount: string, display: string, overLimit: boolean }替换金额显示区
toolbar—键盘下方扩展条

Expose ​

名称类型说明
open / close() => voidpopup 弹层开合控制
clear() => void清空当前金额
getValue() => string取当前金额原始字符串(非千分位)