首先el-select 搜索功能是这样的:
当我们输入一个数据时下拉列表搜索出来我们输入的数据 然后按鼠标 或者enter键进行选择,enter键直接默认选择
两种情况:
1.创建条目远程搜索
产品要求是按tab键 跳进表单项 输入数据后 按tab键 选择当前输入的值并跳进下一个表单项
用remote-method获取到搜索出的列表,select循环中的列表搜索出来的列表,然后tab键选择出搜索列表的第一个,然后再加上个点击input框时候,获取未搜索时的列表数据
remoteMethod(query,list) {
if (query !=='') {
this.loading =true;
let arr = []
setTimeout(() => {
this.loading =false;
arr = list.filter(item => {
return item.code.toLowerCase().indexOf(query.toLowerCase()) > -1;
});
this.$set(this,'searchOptions',arr)
this.$forceUpdate()
}, 200);
}else {
this.searchOptions = list;
}
},
2.select远程搜索,相当于输入个列表中存在的数据 按tab键 保留输入的值 跳到下个表单
思路就是我在输入的时候拿输入的值去和下拉框比对,如果相同那么赋给model值
:filter-method="(value)=>{filterMethod(value,partCodeList,scope.row,'partCode')}"
filterMethod(value,list,row,name){
let modelValue =''
modelValue = list.find(item => {
return item.code.toLowerCase() ===value.toLowerCase()
});
// value.toLowerCase()
this.$set(row,name,modelValue.code)
},