相思资源网 Design By www.200059.com
最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。
一、实现思路
1 实时监控表格,实现关键字的定位;
2 点击搜索按钮以后,实现记录中关键字的样式变化(即高亮)。
二、实现过程
1 搜索条件表单
了解了实现思路,就让我们一起来看一下实现过程(关键位置均给了注释)
<el-form :inline="true" :model="formQuery" > <el-row> <el-col :span="8"> <el-form-item label="日志编码" > <el-input v-model="formQuery.queryMessage1" ></el-input> </el-form-item> </el-col> <el-col :span="8" > <el-form-item label="日志编码2"> <el-input v-model="formQuery.queryMessage2" ></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> <el-form-item label="日志编码3"> <el-input v-model="formQuery.queryMessage3" ></el-input> </el-form-item> </el-col> <el-col :span="4"> <el-form-item> <el-button @click="loadData()" >查询</el-button> </el-form-item> </el-col> </el-row> </el-form>
2 表格部分
<el-table :fit="true" ref="logInfosData" max-height="700" :data="logInfosData" element-loading-text="loading" :highlight-current-row="true" size="mini" > <el-table-column prop="_source.message" :label="$t('Loginformation')" sortable > <template slot-scope="scope"> <span v-html="showData(message)" == <!--注意此处的写法,该函数showData返回的结果是一段HTML代码,在这里是直接进行填充,填充的内容是修改了关键字样式以后的内容。-->== ></span> </template> </el-table-column> </el-table>
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'<font color="#409EFF">' + this.listQuery.prodcd + '</font>') .replace(this.listQuery.queryMessage2, '<font color="#409EFF">' + this.listQuery.queryMessage3 + '</font>') } else { return val //不做任何修改 } }, //判断搜索记录是否包含某个关键字 checkPara(val,para){ if (val.indexOf(para) !== -1 && para !== ''){ return true; }else { return false } }
三、总结
实现以后会觉得思路很简单。其实任何一个多么复杂的需求,只要在做之前,理清思路,分成一个个小的实现过程,那么就自然很简单,而且效率也很高。这也是我的真切感受。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无vue+Element实现搜索关键字高亮功能的评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。