1. 效果展示:
2. 代码:
html部分:
<el-autocomplete
v-model.trim="state.groupName"
:fetch-suggestions="querySearchGroup"
:clearable="true"
placeholder="请输入"
:trigger-on-focus="false"
@select="handleGroup"
>
ts部分:
let state = reactive({
// 分组名称
groupName: ''
})
// 按需求自己配置
interface GroupItem {
value: string
}
// 获取名称
const groupNameArr = ref<GroupItem[]>([])
const querySearchGroup = (queryString: string, cb: any) => {
const results = queryString
? groupNameArr.value.filter(createFilter(queryString)) // 选择模糊匹配还是精确匹配
: groupNameArr.value
cb(results)
}
// 模糊(按需求自选)
const createFilter = (queryString: string) => {
return (item: any) => {
return item.value.indexOf(queryString) === 0
}
}
// 精确(按需求自选)
const createFilterNum = (queryString: string) => {
return (item: any) => {
return item.value == queryString
}
}
const handleGroup = (item: any) => {
console.log(item)
}
onMounted(() => {
// 根据需求获取数据
groupNameArr.value = groupArr
}