最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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實現(xiàn)搜索關(guān)鍵字高亮功能

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 21:55:57
文檔

vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能

vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能:最近做了一個日志搜索的需求,要在頁面上實現(xiàn)海量日志的關(guān)鍵字搜索。為了搜索更清晰,我最終實現(xiàn)了多條件搜索,且搜索結(jié)果的記錄中的關(guān)鍵字全部高亮。 一、實現(xiàn)思路 1 實時監(jiān)控表格,實現(xiàn)關(guān)鍵字的定位; 2 點擊搜索按鈕以后,實現(xiàn)記錄中關(guān)鍵字的樣式變化(即
推薦度:
導讀vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能:最近做了一個日志搜索的需求,要在頁面上實現(xiàn)海量日志的關(guān)鍵字搜索。為了搜索更清晰,我最終實現(xiàn)了多條件搜索,且搜索結(jié)果的記錄中的關(guān)鍵字全部高亮。 一、實現(xiàn)思路 1 實時監(jiān)控表格,實現(xiàn)關(guān)鍵字的定位; 2 點擊搜索按鈕以后,實現(xiàn)記錄中關(guān)鍵字的樣式變化(即

最近做了一個日志搜索的需求,要在頁面上實現(xiàn)海量日志的關(guān)鍵字搜索。為了搜索更清晰,我最終實現(xiàn)了多條件搜索,且搜索結(jié)果的記錄中的關(guān)鍵字全部高亮。

一、實現(xiàn)思路

1 實時監(jiān)控表格,實現(xiàn)關(guān)鍵字的定位;

2 點擊搜索按鈕以后,實現(xiàn)記錄中關(guān)鍵字的樣式變化(即高亮)。

二、實現(xiàn)過程

1 搜索條件表單

了解了實現(xiàn)思路,就讓我們一起來看一下實現(xiàn)過程(關(guān)鍵位置均給了注釋)

<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)"
 == <!--注意此處的寫法,該函數(shù)showData返回的結(jié)果是一段HTML代碼,在這里是直接進行填充,填充的內(nèi)容是修改了關(guān)鍵字樣式以后的內(nèi)容。-->==
 ></span>
 </template>
 </el-table-column>
</el-table>

3.實時監(jiān)聽表格

computed:{
 // 實時監(jiān)聽表格
 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.修改關(guān)鍵字樣式

// 篩選變色
 showData(val) {
 val = val + '';
 if (this.checkPara(val,this.listQuery.queryMessage)||this.checkPara(val,this.listQuery.queryMessage2)
 ||this.checkPara(val,this.listQuery.queryMessage3)) {
 //如果搜索結(jié)果記錄包含關(guān)鍵字中的任何一個,那么修改樣式
 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 //不做任何修改
 }
 },
 //判斷搜索記錄是否包含某個關(guān)鍵字
 checkPara(val,para){
 if (val.indexOf(para) !== -1 && para !== ''){
 return true;
 }else {
 return false
 }
 }

三、總結(jié)

實現(xiàn)以后會覺得思路很簡單。其實任何一個多么復雜的需求,只要在做之前,理清思路,分成一個個小的實現(xiàn)過程,那么就自然很簡單,而且效率也很高。這也是我的真切感受。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能

vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能:最近做了一個日志搜索的需求,要在頁面上實現(xiàn)海量日志的關(guān)鍵字搜索。為了搜索更清晰,我最終實現(xiàn)了多條件搜索,且搜索結(jié)果的記錄中的關(guān)鍵字全部高亮。 一、實現(xiàn)思路 1 實時監(jiān)控表格,實現(xiàn)關(guān)鍵字的定位; 2 點擊搜索按鈕以后,實現(xiàn)記錄中關(guān)鍵字的樣式變化(即
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top