vue代码
<el-input
class="input"
v-model="inputVal"
:disabled="!itemData.editable"
placeholder=" "
@change="inputValChange"
></el-input>
<!--inputVal 改为 selectVal-->
<el-select
class="select"
v-model="selectVal"
placeholder=" "
@change="selectValChange"
>
<el-option
v-for="item in itemData.array"
:key="item.code"
:label="item.name"
:value="item.code"
></el-option>
</el-select>
input的值发生改变时
inputValChange(val) {
//如果val匹配到下拉数据,同步select
//如果val没有匹配到下拉数据,select的值清空
let findData = this.itemData.array.find(item=>{
return item.code === val;
})
if(findData) {
this.selectVal = val;
}else {
this.selectVal = "";
}
}
//select框选择之后,同步输入框inputVal
selectValChange(val) {
this.inputVal = val;
},
//处理键盘下拉数据回显时
selectValEvent(val) {
let findData = this.itemData.array && this.itemData.array.find(item=>{
return val === item.code;
})
let returnValue = "";
if(findData) {
returnValue = val;
}
return returnValue;
}
//监听itemData.value
"itemData.value"(val){
//当选择变量时val无匹配到的下拉数据,就置空
let findData = this.itemData.array.find(item=>{
return item.code === val;
})
if(findData) {
//这种情况不存在,变量为{}格式
this.selectVal = val;
}else {
this.selectVal = "";
}
},