element中有个input的搜索搜索功能,但是不能实时高亮关键字,做了下修改。
实现代码:
<div class="dm_con">
<div class="zu">
<h4>带输入建议输入框</h4>
<el-autocomplete
class="inline-input"
v-model="state1"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelect"
>
<template slot-scope="{item}">
<div v-html="item.value"></div>
</template>
</el-autocomplete>
</div>
</div>
</template>
<script>
export default {
data() {
return {
state1: '',
restaurants:[
{ "selectLable": "三全鲜食(北新泾店)", "address": "长宁区新渔路144号" },
{ "selectLable": "Hot honey 首尔炸鸡(仙霞路)", "address": "上海市长宁区淞虹路661号" },
{ "selectLable": "新旺角茶餐厅", "address": "上海市普陀区真北路988号创邑金沙谷6号楼113" },
{ "selectLable": "泷千家(天山西路店)", "address": "天山西路438号" },
{ "selectLable": "胖仙女纸杯蛋糕(上海凌空店)", "address": "上海市长宁区金钟路968号1幢18号楼一层商铺18-101" },
{ "selectLable": "贡茶", "address": "上海市长宁区金钟路633号" },
{ "selectLable": "豪大大香鸡排超级奶爸", "address": "上海市嘉定区曹安公路曹安路1685号" },
{ "selectLable": "茶芝兰(奶茶,手抓饼)", "address": "上海市普陀区同普路1435号" },
{ "selectLable": "十二泷町", "address": "上海市北翟路1444弄81号B幢-107" },
{ "selectLable": "星移浓缩咖啡", "address": "上海市嘉定区新郁路817号" },
{ "selectLable": "阿姨奶茶/豪大大", "address": "嘉定区曹安路1611号" },
{ "selectLable": "新麦甜四季甜品炸鸡", "address": "嘉定区曹安公路2383弄55号" },
{ "selectLable": "Monica摩托主题咖啡店", "address": "嘉定区江桥镇曹安公路2409号1F,2383弄62号1F" },
{ "selectLable": "浮生若茶(凌空soho店)", "address": "上海长宁区金钟路968号9号楼地下一层" },
{ "selectLable": "NONO JUICE 鲜榨果汁", "address": "上海市长宁区天山西路119号" },
{ "selectLable": "CoCo都可(北新泾店)", "address": "上海市长宁区仙霞西路" },
{ "selectLable": "快乐柠檬(神州智慧店)", "address": "上海市长宁区天山西路567号1层R117号店铺" },
{ "selectLable": "Merci Paul cafe", "address": "上海市普陀区光复西路丹巴路28弄6号楼819" },
{ "selectLable": "猫山王(西郊百联店)", "address": "上海市长宁区仙霞西路88号第一层G05-F01-1-306" },
{ "selectLable": "枪会山", "address": "上海市普陀区棕榈路" },
{ "selectLable": "纵食", "address": "元丰天山花园(东门) 双流路267号" },
{ "selectLable": "钱记", "address": "上海市长宁区天山西路" },
{ "selectLable": "壹杯加", "address": "上海市长宁区通协路" },
{ "selectLable": "唦哇嘀咖", "address": "上海市长宁区新泾镇金钟路999号2幢(B幢)第01层第1-02A单元" },
{ "selectLable": "爱茜茜里(西郊百联)", "address": "长宁区仙霞西路88号1305室" },
{ "selectLable": "爱茜茜里(近铁广场)", "address": "上海市普陀区真北路818号近铁城市广场北区地下二楼N-B2-O2-C商铺" }
]
}
},
methods: {
querySearch(queryString, cb) {
var restaurants = this.restaurants;
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
// 调用 callback 返回建议列表的数据
let htmlStr=`<span style='color:red;'>${queryString}</span>`
results.forEach((item)=>{
item.value = item.selectLable.replace(queryString,htmlStr)
})
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.selectLable.toLowerCase().indexOf(queryString.toLowerCase()) !== -1);
};
},
handleSelect(item) {
this.state1 = item.selectLable;
}
},
};
</script>