结合uv-ui进行编写,键盘使用uv-ui的组件,其他由我们自己编写。
<template>
<div class="addCarContent">
<div class="boxContent">
<div class="carCodeInput" @click="getIndex">
<div
:class="[index === 0 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[0] }}
</div>
<div
:class="[index === 1 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[1] }}
</div>
<div class="point"></div>
<div
:class="[index === 2 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[2] }}
</div>
<div
:class="[index === 3 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[3] }}
</div>
<div
:class="[index === 4 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[4] }}
</div>
<div
:class="[index === 5 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[5] }}
</div>
<div
:class="[index === 6 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[6] }}
</div>
<div
:class="[index === 7 && showActive ? 'input_active' : '', 'input']"
>
{{ CarCode[7] }}
</div>
</div>
</div>
<uv-keyboard
ref="keyboard"
mode="car"
@change="change"
:showTips="false"
@confirm="confirm"
@backspace="backspace"
:autoChange="true"
:overlay="true"
:safeAreaInsetBottom="true"
:confirmText="'完成'"
@changeCarInputMode="changeCarInputMode"
@close="closeKey"
>
<template v-slot:abc>
<text v-if="isABC">省份</text>
<text v-else>ABC</text>
</template>
</uv-keyboard>
</div>
</template>
<script>
export default {
data() {
return {
CarCode: ["", "", "", "", "", "", "", ""],
index: "",
isABC: false,
showActive: false,
checkboxValue: ["true"],
};
},
onShow() {
this.getIndex();
},
mounted() {},
methods: {
closeKey() {
this.showActive = false;
},
changeCarInputMode(e) {
this.isABC = e;
},
getIndex() {
let index = this.CarCode.indexOf("");
if (index !== -1) {
this.index = index;
} else {
this.index = 7;
}
this.$refs.keyboard.open();
this.showActive = true;
},
change(e) {
console.log("change", e, this.index);
if (this.index <= 7) {
this.CarCode[this.index] = e;
this.index++;
if (this.index > 7) {
this.$refs.keyboard.close();
this.showActive = false;
this.index--;
}
}
console.log("changeEnd", this.CarCode);
},
confirm() {
console.log("confirm");
},
backspace() {
console.log("backspace", this.index);
if (this.index === 1) {
this.$refs.keyboard.changeCarMode();
}
if (this.index >= 0) {
if (this.CarCode[this.index] === "") {
this.index--;
this.CarCode[this.index] = "";
} else {
this.CarCode[this.index] = "";
}
if (this.index < 0) {
this.index = 0;
}
}
this.$forceUpdate();
console.log("backspaceEnd", this.CarCode, this.index);
},
},
};
</script>