el-select支持汉字首字母搜索
时间: 2023-11-01 17:00:33 浏览: 74
超强悍的select支持汉字、拼音首字母、英文搜索方式
4星 · 用户满意度95%
是的,el-select支持汉字首字母搜索。可以设置属性filterable为true,并在过滤方法中使用pinyin库将汉字转换为拼音,在搜索时匹配拼音即可。以下是一个示例代码片段:
```html
<template>
<el-select
filterable
v-model="value"
:remote-method="handleRemoteMethod"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
<script>
import pinyin from 'pinyin'
export default {
data() {
return {
value: '',
options: [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广州', value: 'guangzhou' },
{ label: '深圳', value: 'shenzhen' },
{ label: '杭州', value: 'hangzhou' },
],
}
},
methods: {
handleRemoteMethod(query) {
if (query !== '') {
const filteredOptions = this.options.filter((option) => {
const pinyinArr = pinyin(option.label, {
style: pinyin.STYLE_FIRST_LETTER,
})
const pinyinStr = pinyinArr.join('')
return pinyinStr.toLowerCase().indexOf(query.toLowerCase()) > -1
})
this.options = filteredOptions
} else {
this.options = [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广州', value: 'guangzhou' },
{ label: '深圳', value: 'shenzhen' },
{ label: '杭州', value: 'hangzhou' },
]
}
},
},
}
</script>
```
在这个示例中,我们使用pinyin库将每个选项的标签转换为拼音,并将拼音字符串转换为小写字母以进行搜索。然后,我们在过滤方法中使用这个拼音字符串来匹配查询字符串。最后,我们将过滤后的选项设置回options数组,以更新el-select中的选项。
阅读全文