<template>
<el-table
:data="tableData.filter(data => !search || data.name.toLowerCase().includes(search.toLowerCase()))"
style="width: 100%">
<el-table-column
label="Date"
prop="date">
</el-table-column>
<el-table-column
label="Name"
prop="name">
</el-table-column>
<el-table-column
align="right">
<template slot="header" slot-scope="scope">
<el-input
v-model="search"
size="mini"
placeholder="输入关键字搜索"/>
</template>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)">Edit</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
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 弄'
}],
search: ''
methods: {
handleEdit(index, row) {
console.log(index, row);
handleDelete(index, row) {
console.log(index, row);
</script>
如果有多个搜索条件的话该怎么处理呢?
用以下写法就可以
:data="tableData.filter(data => !search
|| data.name.toLowerCase()
.includes(name.toLowerCase()))
.filter(data => !searchAddress
|| data.address.toLowerCase()
.includes(address.toLowerCase()))"
当然除了以上用于table之外还有其他办法,可以实用watch属性,进行监听。然后数据发生改变时候,动态进行检索。本质上还是使用filter.但是这种写法多个检索条件联合使用。还是有些问题。不推荐使用。
watch:{
name: {
deep: true,
handler: function(newEle,oldEle) {
if(newEle != oldEle){
this.tableData = this.tableDatafilter(
data => !search || data.name.toLowerCase().includes(search.toLowerCase()))
效果图:<template> <el-table :data="tableData.filter(data => !search || data.name.toLowerCase().includes(search.toLowerCase()))" style="width: 100%"> <el-table-column label="Date" prop="date"> </el-table-
<!-- 设置用户 -->
<div class="SetUser">
<el-dialog title="设置用户" :visible.sync="visible1" width="35rem" center append-to-body>
<el-input v-model="search" placeholder="搜索" style="margin-bottom:1rem;" maxl
1、在使用Vue + Element-ui 用table 表格做分页的时候使用
:data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
2、在使用Vue + Element-ui 用table表格做搜索时的时候使用
:data="tableData.filter(data => !search || data.username.toLowerCase().includes(search.toLowerCas
elementUI-table之filters数据过滤用法
前几天在做项目的过程中,用到了elementUI表格。当时的遇到的问题是需要通过从后台返回来的状态码,根据判断将它渲染成文字数据。由于我是刚接手代码,在代码中看到了filters这个属性,感觉可以用它实现。到最后才发现,其实filters是用来做筛选功能的,下面就和大家一起学习一下这个知识点吧。
//截图来自elementUI-table...
<el-button type="text" style="margin-left:600px;color: #8cc5ff;text-decoration: underline;" @click="isActive=!isActive">
{{isActive ? "Less Conditions" : "More Conditions"}}
<i :class="isActive ? 'el-icon-arrow-up' : ..