版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24147051/article/details/84983056
如图所示,当你输入某个关键字时,去掉用某个接口,然后通过关键字获取数据。
View Code
<el-autocomplete
class="inline-input"
v-model="form.tName"
:fetch-suggestions="querySearch"
placeholder="input teacher name!"
:trigger-on-focus="false"
@select="handleSelect">
</el-autocomplete>
JS Code
// 模糊搜索 (通过接口拿到数据,将值赋给value,value未模糊匹配搜索到的值)
querySearch(queryString, cb) {
TeacherSalary.getTeacherName({ teacherName: queryString })
.then((res) => {
const { code, data } = res;
if (code === 0) {
this.teacherNameList = data;
this.teacherNameList.forEach((element) => {
element.value = element.tName;
});
const results = queryString ? this.teacherNameList.filter(this.createFilter(queryString)) : this.teacherNameList;
cb(results);
}
})
.catch(err => err);
},
createFilter(queryString) {
return name => (name.tName.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
},
handleSelect(item) {
this.form.T = item.id;
}
注意点:
(1)name.tName.toLowerCase().indexOf(queryString.toLowerCase()) === 0
表示从第一个开始匹配
(2)name.tName.toLowerCase().indexOf(queryString.toLowerCase()) > -1
表示有该关键字的都可以匹配到