利用 Vue 和 element 的实现table表格数据的模糊匹配搜索
<template><div class="dormitory"><div class="searchWord"><div style="display: inline-block"> 搜索:</div&
·
<template>
<div class="dormitory">
<div class="searchWord">
<div style="display: inline-block"> 搜索:</div>
<el-input v-model="search" style="display: inline-block;width: 1300px"
placeholder="请输入搜索内容">
</el-input>
</div>
// 遍历表格
<div class="dormitoryData">
<el-table
ref="dormitoryTable"
:data="tables"
tooltip-effect="dark"
stripe
style="width: 100%">
<el-table-column type="selection" width="45"></el-table-column>
<el-table-column label="序号" type="index" width="65"></el-table-column>
<el-table-column label="人物" prop="people">
</el-table-column>
<el-table-column label="关系" prop="relationship">
</el-table-column>
<el-table-column label="初见" prop="meet">
</el-table-column>
<el-table-column label="地点" prop="place">
</el-table-column>
<el-table-column label="昵称" prop="execg">
</el-table-column>
<el-table-column label="认识年限" prop="year">
</el-table-column>
<el-table-column label="成名之作" prop="works">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data () {
return {
dormitory: [{
people: '雷森',
relationship: '大学室友',
meet: '2010-09-02',
place: '图书馆',
execg: '胖子',
year: '8年',
works: '海阔天空'
}, {
people: '刘利伟',
relationship: '大学室友',
meet: '2010-09-02',
place: '5#633',
execg: '老大',
year: '8年',
works: '勇气'
}, {
people: '李金龙',
relationship: '大学室友',
meet: '2010-09-02',
place: '5#633',
execg: '二哥',
year: '8年',
works: '遇见'
}, {
people: '马康',
relationship: '大学室友',
meet: '2010-09-02',
place: '餐饮大厦',
execg: '康哥',
year: '8年',
works: '不再联系'
}, {
people: '牛光卫',
relationship: '大学室友',
meet: '2010-09-02',
place: '图书馆',
execg: '牛牛娃',
year: '8年',
works: '断点'
}, {
people: '陆兆攀',
relationship: '大学室友',
meet: '1991-07-27',
place: '百浪',
execg: '帅哥',
year: '27年',
works: '不再犹豫'
}, {
people: '小甜',
relationship: '亲密的人',
meet: '2016-10-05',
place: '小寨',
execg: '甜甜圈',
year: '2年',
works: 'Forever Love'
}],
search: ''
}
},
computed: {
// 模糊搜索
tables () {
const search = this.search
if (search) {
// filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
// 注意: filter() 不会对空数组进行检测。
// 注意: filter() 不会改变原始数组。
return this.dormitory.filter(data => {
// some() 方法用于检测数组中的元素是否满足指定条件;
// some() 方法会依次执行数组的每个元素:
// 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测;
// 如果没有满足条件的元素,则返回false。
// 注意: some() 不会对空数组进行检测。
// 注意: some() 不会改变原始数组。
return Object.keys(data).some(key => {
// indexOf() 返回某个指定的字符在某个字符串中首次出现的位置,如果没有找到就返回-1;
// 该方法对大小写敏感!所以之前需要toLowerCase()方法将所有查询到内容变为小写。
return String(data[key]).toLowerCase().indexOf(search) > -1
})
})
}
return this.dormitory
}
},
methods: {
}
}
</script>
更多推荐
已为社区贡献10条内容
所有评论(0)