vehicle-keyboard-js
Version:
parking vehicle keyboard
169 lines (138 loc) • 6.13 kB
Markdown
# vehicleKeyboard
普通车牌和新能源车牌
- 中文键盘

- 英文键盘

# 适用范围
- 使用 `flex` 自动布局,适用于多端
- 中英文键盘都可根据自己的需求定义
- 可模块化导入
- 可以浏览器中直接引入,支持`umd`方式引入
- 支持`Vue`、`React`等框架
# 安装
```shell
npm install vehicle-keyboard-js
```
或者通过`cdn`引入
1. 引入`js`
```js
<script src="https://unpkg.com/vehicle-keyboard-js@1.1.1/lib/Keyboard.min.js"></script>
```
2. 引入样式
```css
<link rel="stylesheet" href="https://unpkg.com/vehicle-keyboard-js@1.1.1/lib/style/default.css"></link>
```
## Vue 中使用
```vue
<script setup>
import { ref, onMounted } from "vue";
import Keyboard from "vehicle-keyboard-js";
import "vehicle-keyboard-js/lib/style/default.css";
const keyboard = ref();
keyboard.value = new Keyboard({
boxName: ".box",
// writeBoxName: ".inp",
entryInputName: ".inp",
defaultVehicleValue: "鄂j401",
pushCh: ["中", "国", "加", "油"],
pushEn: ["1"],
enabledEn: ["O", "j", "1"],
enabledCh: ["油"],
externalKeyboard: true, //是否启用自己的键盘
onBackpace() {
console.log("onBackpace=>删除事件的回调");
console.log(keyboard.value.getVehicleValue());
},
onChange(val) {
console.log("onChange=>事件的回调", val);
},
});
onMounted(() => {
keyboard.value.init();
});
</script>
<template>
<div class="inp"></div>
<div class="box"></div>
</template>
```
其他`js`框架同理,在框架虚拟`dom`加载完成的时候,调用键盘的初始化方法即可;
## 使用`cdn`引入使用
```html
<!-- 外层的盒子名称都可自己定义 -->
<!-- 和js的boxName、entryInputNa名称对应即可 -->
<div class="inp"></div>
<div class="keyboard"></div>
```
键盘初始化
```js
//虽然样式名称还是keyborad但是调用时已经修改为Keyboard
//1.1显示写的输入框
let keyboard = new Keyboard({
boxName: ".keyboard",
writeBoxName: ".inp",
});
//1.2或者使用内置创建的输入框
let keyboard = new Keyboard({
boxName: ".keyboard",
entryInputNa: ".inp",
pageVehicleSplit: "鄂j401", //页面传的车牌
keyboardFn: () => {}, //键盘点击回调事件
backpaceFn: () => {}, //键盘backpace点击回调事件
});
//2. 初始化生成键盘
keyboard.init();
```
# new Keyboard(params:object) 传的参数
- **`boxName`** 放置键盘盒子的名称-`string`-**必填项**;
- ~~`entryInputNa`放置键盘输入框名称-`string`-非必填项(`writeBoxName` 为空时,必填),不能是 `input` 框,应该为一个盒子;~~
- `entryInputName`放置键盘输入框名称-`string`-非必填项(`writeBoxName` 为空时,必填),不能是 `input` 框,应该为一个盒子;
- `writeBoxName`存键盘操作的值的 `input` 或者盒子-`string`-非必填项(`entryInputName`为空时,必填);
- `chArray`有自己的默认值,显示中文车牌-`string|number[]`-非必填项;
- `enArray`有自己的默认值,显示字母和数字-`string|number[]`-非必填项;
- ~~`keyboardShowRowNum`键盘排列几行,默认显示 5 行-`number`-非必填项;~~
- `rowNumber`键盘排列几行,默认显示 5 行-`number`-非必填项;
- `pushCh`可以往原有的中文键盘中添加自己的中文-`string|number[]`-非必填项;
- `pushEn`可以往原有的字母和数字键盘中添加自己的字母和数字-`string|number[]`-非必填项;
- ~~`inputLen`现实几个键盘输入框,默认是 `9` 个(其实显示出来是 `8` 位的车牌),带中间一个点-`number`-非必填项;~~
- `inputNumber`现实几个键盘输入框,默认是 `9` 个(其实显示出来是 `8` 位的车牌),带中间一个点-`number`-非必填项;
- ~~`keyboardFn`点击键盘的回调函数,没有返回值,只有回调,-`Function`-非必填项;~~
- `onChange`点击键盘的回调函数,没有返回值,只有回调,-`Function`-非必填项;
- ~~`pageVehicleSplit`: "页面中传来的部分车牌,`string`-非必填项;~~
- `defaultVehicleValue`: "页面中传来的部分车牌,`string`-非必填项;
- `enabledCh`: "需要禁用的中文键-`string|number[]`-非必填项";
- `enabledEn`: "需要禁用的英文键-`string|number[]`-非必填项";
- `externalKeyboard`:是否启用内置键盘-`Boolean`-非必填项,默认`false`不开启,`entryInputName`存在时才起作用,(开启原生自带键盘输入的方式);
# 返回的事件和参数
- `init` -`Function`- 键盘创建和初始化 -**必须执行函数初始化**
- `getVehicleValue` -`Function`- 返回输入的车牌
- `saveValue` -`string|number[]`- 返回输入的车牌
- `showDoc` -`Function`- 显示使用文档
- `initValue` -`Function`- 初始化键盘
- ~~`keyboardShow` -`Function`- 键盘显示~~
- `show` -`Function`- 键盘显示
- ~~`keyboardHide` -`Function`- 键盘隐藏~~
- `hide` -`Function`- 键盘隐藏
- ~~`backpaceFn` -`Function`- 键盘上的 `backpack` 键的事件~~
- `onBackpace` -`Function`- 键盘上的 `backpack` 键的事件
- ~~`initComplateFn` -`Function`- 键盘创建完成的回调函数~~
- `onComplate` -`Function`- 键盘创建完成的回调函数
# 版本更新
- **1.0.14**
- 包由`zy-vehicle-keyboard`更名为`vehicle-keyboard-js`
- 修复删除事件多返回一位
- **1.0.15** (重大更新)
- **将 css 抽离到单独的文件中,减少`js`的体积,用户可自定义键盘样式,须用户单独引入 css 样式**
- 修复切换到第二个输入框,键盘没有自动切换到数字键盘
- **1.1.1**(重大更新)
- 修改有歧义的属性和方法,变更如下
1. entryInputNa => entryInputName
2. keyboardShowRowNum => rowNumber
3. pageVehicleSplit => defaultVehicleValue
4. inputLen => inputNumber
5. keyboardShow => show
6. keyboardHide => hide
7. keyboardFn => onChange
8. backpaceFn => onBackpace
9. initComplateFn => onComplate