vue+Elementは検索キーワードのハイライト機能を実現します。
最近はログ検索の需要があります。ページで大容量ログのキーワード検索を実現します。より明確に検索するために、私は最終的に多条件検索を実現し、検索結果の記録中のキーワードはすべてハイライトされます。
一、考え方を実現する
1リアルタイムでテーブルを監視して、キーワードの位置付けを実現します。
2検索ボタンをクリックして、キーワードを記録するスタイルの変化を実現します。
二、実現過程
1検索条件フォーム
実現の構想が分かりました。実現過程を一緒に見てみましょう。
実現したら構想が簡単だと思います。実際には、どのような複雑なニーズがありますか?やる前に、物事を整理し、小さな実現過程に分けていけば、自然に簡単で、効率も高いです。これも私の実感です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
一、考え方を実現する
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
}
}
三、まとめ実現したら構想が簡単だと思います。実際には、どのような複雑なニーズがありますか?やる前に、物事を整理し、小さな実現過程に分けていけば、自然に簡単で、効率も高いです。これも私の実感です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。