最近,項目中碰到需求,要求任務類型可以從下拉框(后台返回的數據)中選擇,也可以手動輸入添加新項,項目用的是antd-vue,所以最接近的組件就是a-select組件了,廢話不多說,改造方法如下:
HTML:

1 <a-select 2 show-search 3 :value="value" 4 optionLabelProp='children' 5 :autoClearSearchValue="false" 6 placeholder="請選擇或輸入任務類型" 7 :default-active-first-option="false" 8 :show-arrow="false" 9 :filter-option="true" 10 :not-found-content="null" 11 @search="handleSearch" 12 @blur="handleBlur" 13 @change="handleChange" 14 > 15 <a-select-option v-for="(item,index) in typeData" :key="index"> 16 {{ item.work_type }} 17 </a-select-option> 18 </a-select>
data定義:

1 data () { 2 return { 3 value:undefined, 4 typeData:[],//任務類型數組 5 } 6 }
methods方法:

1 /** 2 * @function 任務類型文本框的值變化時的回調 3 * @author *** 4 * @time 2020-08-17 5 **/ 6 handleSearch (value) { 7 this.handleChange(value); 8 }, 9 /** 10 * @function 任務類型改變時的回調 11 * @author *** 12 * @time 2020-08-17 13 **/ 14 handleChange (value) { 15 this.value = (!isNaN(value)&&value!='')?this.typeData[value].work_type:value; 16 }, 17 /** 18 * @function 任務類型失焦事件 19 * @author *** 20 * @time 2020-08-17 21 **/ 22 handleBlur(value) { 23 this.value=value; 24 this.model.workType = this.value; 25 },
后台接口返回的數據如下:
效果圖如下:
PS:模糊查詢功能請自行完善