最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的吉水网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
一、实现思路
1 实时监控表格,实现关键字的定位;
2 点击搜索按钮以后,实现记录中关键字的样式变化(即高亮)。
二、实现过程
1 搜索条件表单
了解了实现思路,就让我们一起来看一下实现过程(关键位置均给了注释)
查询
2 表格部分
== >
3.实时监听表格
computed:{ // 实时监听表格 tables: function() { const search = this.listQuery.queryMessage||this.listQuery.queryMessage2||this.listQuery.queryMessage3 if (search) { return this.logInfosData.filter(dataNews => { return Object.keys(dataNews).some(key => { return String(dataNews[key]).toLowerCase().indexOf(search) > -1 }) }) } return this.tableData } }
4.修改关键字样式
// 筛选变色 showData(val) { val = val + ''; if (this.checkPara(val,this.listQuery.queryMessage)||this.checkPara(val,this.listQuery.queryMessage2) ||this.checkPara(val,this.listQuery.queryMessage3)) { //如果搜索结果记录包含关键字中的任何一个,那么修改样式 return val.replace(this.listQuery.queryMessage'' + this.listQuery.prodcd + '') .replace(this.listQuery.queryMessage2, '' + this.listQuery.queryMessage3 + '') } else { return val //不做任何修改 } }, //判断搜索记录是否包含某个关键字 checkPara(val,para){ if (val.indexOf(para) !== -1 && para !== ''){ return true; }else { return false } }
三、总结
实现以后会觉得思路很简单。其实任何一个多么复杂的需求,只要在做之前,理清思路,分成一个个小的实现过程,那么就自然很简单,而且效率也很高。这也是我的真切感受。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。