最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

vue+Element实现搜索关键字高亮功能

来源:懂视网 责编:小采 时间:2020-11-27 21:55:57
文档

vue+Element实现搜索关键字高亮功能

vue+Element实现搜索关键字高亮功能:最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。 一、实现思路 1 实时监控表格,实现关键字的定位; 2 点击搜索按钮以后,实现记录中关键字的样式变化(即
推荐度:
导读vue+Element实现搜索关键字高亮功能:最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。 一、实现思路 1 实时监控表格,实现关键字的定位; 2 点击搜索按钮以后,实现记录中关键字的样式变化(即

最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。

一、实现思路

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
 }
 }

三、总结

实现以后会觉得思路很简单。其实任何一个多么复杂的需求,只要在做之前,理清思路,分成一个个小的实现过程,那么就自然很简单,而且效率也很高。这也是我的真切感受。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

vue+Element实现搜索关键字高亮功能

vue+Element实现搜索关键字高亮功能:最近做了一个日志搜索的需求,要在页面上实现海量日志的关键字搜索。为了搜索更清晰,我最终实现了多条件搜索,且搜索结果的记录中的关键字全部高亮。 一、实现思路 1 实时监控表格,实现关键字的定位; 2 点击搜索按钮以后,实现记录中关键字的样式变化(即
推荐度:
标签: 搜索 VUE 关键词
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top