<a-input-number @keydown="noValueChange('pack_price')" v-fo size="small" :min="0" :max="100000" v-model="value" :precision="2" />
<el-select v-fo-select v-model="value" placeholder="请选择...">
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
输入框自动获取
在mains.js中自定义指令fo,在代码中v-fo使用
//input聚焦
Vue.directive('fo', {
inserted (el, binding, vnode) {
// 聚焦元素
// console.log(el, binding, vnode)
el.querySelector('input').focus()
window.setTimeout(() => {
el.querySelector('input').select()
}, 10);
}
})
下拉框自动展开options
在mains.js中自定义指令fo-select,在代码中v-fo-select使用
Vue.directive('fo-select', {
inserted (el, binding, vnode) {
// 聚焦元素
vnode.componentInstance.toggleMenu()
}
})
a-input-number 数字输入框去除上下切换数值
//去除输入框上下左右键更改数值
noValueChange(name){
if(window.event.keyCode==37||window.event.keyCode==38||window.event.keyCode==39||window.event.keyCode==40){
this.tableData[this.tabClickIndex][name]=window.event.target.value
}
},
el-select按键盘左右键确认所选值
mounted() {
window.addEventListener("keydown", this.keydownFuc);
},
deactivated(){
window.removeEventListener("keydown", this.keydownFuc);
},
methods: {
//下拉框在上下键切换值后按左右键确定值
serSelectValue(){
if(document.getElementsByClassName('el-select-dropdown__item hover').length>0){
let prop=this.gaugeIOutfitArr.filter(item=>{return item.label==this.tabClickLabel})[0].prop
this.tableData[this.tabClickIndex][prop]=document.getElementsByClassName('el-select-dropdown__item hover')[0].innerText
}
},
keydownFuc(){
//键盘右键
if (code.keyCode === 39) {
this.serSelectValue()
}
//键盘左键
if (code.keyCode === 37) {
this.serSelectValue()
}
},
},