element-uiコンポーネントtableカスタムフィルタ機能を実現
2732 ワード
element-ui
デフォルトのtable
コンポーネントでサポートされているヘッダーフィルタリング(フィルタリング)は比較的簡単で、配列のみをサポートする方法、ラジオまたは複数選択の形式ですが、入力ボックス形式をサポートするのが好きな場合があります(実際には少し薄い感じがしますが、一般的なリストページには検索条件があります).注意:
jsx
の文法は、プラグインをインストールする必要がある場合があります.準備作業:1.
babel-plugin-jsx-v-model
プラグインのインストールnpm i babel-plugin-jsx-v-model -D
または
yarn add babel-plugin-jsx-v-model -D
2.
.babelrc
: {
"presets": ["es2015"],
"plugins": ["jsx-v-model", "transform-vue-jsx"]
}
3.ローカル環境の再起動
次のような効果が得られます.
コードは次のとおりです.
export default {
data() {
return {
search: '',
visible: false,
tableData: [{
date: '2016-05-02',
name: ' ',
address: ' 1518 '
}, {
date: '2016-05-04',
name: ' ',
address: ' 1517 '
}, {
date: '2016-05-01',
name: ' ',
address: ' 1519 '
}, {
date: '2016-05-03',
name: ' ',
address: ' 1516 '
}]
}
},
methods: {
renderHeader(h, {column, $index}, index) {
return (
<span>
<el-popover placement='bottom' width='200' height='200' trigger="click" v-model={this.visible}>
<span slot="reference">
<i class="el-icon-search" style={this.search ? {'color' : 'red'} : {'color': 'blue'}}></i>
</span>
<el-input size='small' v-model={this.search} placeholder=' '></el-input>
<div class='el-table-filter__bottom'>
<button class={this.search ? '' : 'is-disabled'}> </button>
<button on-click={this.clearSearch}> </button>
</div>
</el-popover>
</span>
);
},
clearSearch() {
this.search = '';
}
}
}
参照先:https://www.jianshu.com/p/f55...