Element Select下拉 实现拼音、首字母搜索汉字,下拉匹配自动清空问题
效果图
搜索前:
搜索后:
使用
安装插件 pinyin-match:
npm install pinyin-match --save
下拉:
<el-select v-model="form.robot" placeholder="机器人" @change="robotSearch" filterable :filter-method="robotFilterFn" clearable>
<el-option v-for="(item, index) in robotList" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
方法:
注意:把 v-model 双向绑定的字段赋值,不想赋值的没 bug 的也可以不赋值(下拉匹配自动清空问题)
import PinyinMatch from 'pinyin-match'
// val 输入框的值,name:数组显示值得字段,freezeArr:原本数组全部下拉的值
letterFilterFcn (val, name, freezeArr) {
if (val) {
const arr = freezeArr.filter((item) => {
// 如果直接包含输入值直接返回true
if (item[name]) {
if (item[name].toUpperCase().indexOf(val.toUpperCase()) !== -1) {
return true
}
// 输入值拼音
return PinyinMatch.match(item[name], val)
}
})
return arr
} else {
return freezeArr
}
},
// 搜索方法,切记 把 v-model 双向绑定的字段赋值
robotFilterFn (val) {
this.formData.cvRobotId = val
this.robotList = this.letterFilterFcn(val, 'name', this.freezeArrObj.robotList)
},
robotSearch () {
this.search()
this.robotList = this.freezeArrObj.robotList
},
data值:
robotList: [],
freezeArrObj: {
robotList: []
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)