Skip to content

Keyboard 键盘组件

14:29

组件概况

组件概述

键盘组件是一个功能丰富的自定义键盘,提供了默认数字键盘、自定义键盘和车牌输入键盘三种模式,支持灵活配置和多种交互方式。

详细功能描述

  • 支持三种键盘模式:默认数字键盘、自定义键盘和车牌输入键盘
  • 可配置键盘按键顺序,支持随机排列
  • 支持自定义额外按键和删除键
  • 支持键盘标题和关闭按钮自定义
  • 支持点击外部区域关闭键盘
  • 支持安全区域适配
  • 车牌键盘支持中英文切换

适用业务场景

  • 密码输入场景
  • 验证码输入场景
  • 车牌号码输入场景
  • 需要自定义键盘布局的特殊输入场景

完整API参考

Props

名称类型默认值必填描述
visiblebooleanfalse键盘是否可见
modelValuestring''绑定的值
titlestring-键盘标题
mode'default' \ 'custom' \ 'car''default'键盘模式
zIndexnumber100键盘层级
maxlengthnumberInfinity最大输入长度
showDeleteKeybooleantrue是否显示删除键
randomKeyOrderbooleanfalse是否随机键盘按键顺序
closeTextstring-确认按钮文本
deleteTextstring-删除按钮文本
closeButtonLoadingbooleanfalse关闭按钮是否显示加载状态
modalbooleanfalse是否显示蒙层
hideOnClickOutsidebooleantrue是否在点击外部时收起键盘
lockScrollbooleantrue是否锁定滚动
safeAreaInsetBottombooleantrue是否在底部安全区域内
extraKeystring \ Array<string>-额外按键
rootPortalbooleanfalse是否从页面中脱离出来,用于解决各种 fixed 失效问题
carLang'zh' \ 'en'-车牌键盘语言模式,当mode=car时生效
autoSwitchLangbooleanfalse是否自动切换车牌键盘语言,当mode=car且carLang是非受控状态时生效
customStylestring-自定义样式
customClassstring-自定义类名

Events

事件名触发条件参数说明
update:visible键盘显示状态变化时新的显示状态
input输入按键时输入的文本内容
close点击关闭按钮或点击外部区域关闭键盘时-
delete点击删除键时-
update:modelValue输入内容变化时新的输入值
update:carLang车牌键盘语言切换时新的语言模式

Methods

Slots

插槽名作用域变量使用说明
title-键盘标题插槽

多场景使用示例

基础用法

vue
<template>
  <view>
    <wd-button @click="showKeyboard = true">显示键盘</wd-button>
    <view>{{ inputValue }}</view>
    <wd-keyboard v-model:visible="showKeyboard" v-model="inputValue" />
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const showKeyboard = ref(false)
const inputValue = ref('')
</script>

自定义键盘

vue
<template>
  <view>
    <wd-button @click="showKeyboard = true">显示自定义键盘</wd-button>
    <view>{{ inputValue }}</view>
    <wd-keyboard 
      v-model:visible="showKeyboard" 
      v-model="inputValue" 
      mode="custom" 
      :extra-key="['确认', '取消']" 
    />
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const showKeyboard = ref(false)
const inputValue = ref('')
</script>

车牌输入

vue
<template>
  <view>
    <wd-button @click="showKeyboard = true">显示车牌键盘</wd-button>
    <view>{{ inputValue }}</view>
    <wd-keyboard 
      v-model:visible="showKeyboard" 
      v-model="inputValue" 
      mode="car" 
      :maxlength="7" 
      auto-switch-lang 
    />
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const showKeyboard = ref(false)
const inputValue = ref('')
</script>

随机键盘顺序

vue
<template>
  <view>
    <wd-button @click="showKeyboard = true">显示随机键盘</wd-button>
    <view>{{ inputValue }}</view>
    <wd-keyboard 
      v-model:visible="showKeyboard" 
      v-model="inputValue" 
      random-key-order 
    />
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const showKeyboard = ref(false)
const inputValue = ref('')
</script>

限制输入长度

vue
<template>
  <view>
    <wd-button @click="showKeyboard = true">显示键盘</wd-button>
    <view>{{ inputValue }}</view>
    <wd-keyboard 
      v-model:visible="showKeyboard" 
      v-model="inputValue" 
      :maxlength="6" 
    />
  </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const showKeyboard = ref(false)
const inputValue = ref('')
</script>

样式定制指南

自定义样式

通过 customStyle 属性可以自定义键盘的样式:

vue
<wd-keyboard 
  v-model:visible="showKeyboard" 
  v-model="inputValue" 
  :custom-style="{ backgroundColor: '#f5f5f5', borderRadius: '10px' }" 
/>

自定义类名

通过 customClass 属性可以添加自定义类名,然后在样式文件中定义样式:

vue
<wd-keyboard 
  v-model:visible="showKeyboard" 
  v-model="inputValue" 
  custom-class="my-keyboard" 
/>
scss
.my-keyboard {
  background-color: #f5f5f5;
  border-radius: 10px;
}

注意事项

  1. 键盘模式选择:

    • default:默认数字键盘,包含0-9数字和删除键
    • custom:自定义键盘,可配置额外按键
    • car:车牌输入键盘,支持中英文切换
  2. 车牌键盘使用:

    • 车牌键盘默认显示中文省份简称
    • 输入第一位后,可通过点击"ABC"按钮切换到英文模式
    • 设置 autoSwitchLang 为 true 时,会自动在输入第一位后切换到英文模式
  3. 随机键盘顺序:

    • 随机键盘顺序适用于安全要求较高的场景,如密码输入
    • 每次显示键盘时,数字按键会随机排列
  4. 额外按键配置:

    • modecustom 时,可通过 extraKey 配置额外按键
    • extraKey 支持字符串或字符串数组,最多支持两个额外按键
  5. 安全区域适配:

    • 默认开启安全区域适配,可通过 safeAreaInsetBottom 属性关闭
    • 在全面屏设备上,开启安全区域适配可确保键盘不被底部导航栏遮挡

📖 Released under the MIT License