JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/[email protected]/lib/index.js"></script>
<div id="app">
<template>
<el-table :data="tableData" style="width: 100%" @filter-change="handler">
<el-table-column prop="date" label="fa" width="180" :filters="filters.date" :filter-method="filterHandler" column-key="date" :filter-multiple=false>
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
</el-table-column>
<el-table-column prop="address" label="地址" :formatter="formatter">
</el-table-column>
<el-table-column prop="tag" label="标签" width="100" :filters="filters.tag" :filter-method="filterTag" filter-placement="bottom-end" column-key="tag">
<template slot-scope="scope">
<el-tag :type="scope.row.tag === '家' ? 'primary' : 'success'">{{scope.row.tag}}</el-tag>
</template>
</el-table-column>
</el-table>
</template>
</div>
Babel + JSX
var Main = {
data() {
return {
filters: {
date: [{text: '2016-05-01', value: '2016-05-01'}, {text: '2016-05-02', value: '2016-05-02'}, {text: '2016-05-03', value: '2016-05-03'}, {text: '2016-05-04', value: '2016-05-04'}],
tag: [{ text: '家', value: '家' }, { text: '公司', value: '公司' }]
},
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
tag: '家'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄',
tag: '公司'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄',
tag: '家'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄',
tag: '公司'
}]
}
},
methods: {
handler(obj) {
console.log(this.filters[Object.keys(obj)[0]]);
},
formatter(row, column) {
return row.address;
},
filterTag(value, row) {
return row.tag === value;
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')