1. @filter-change 要写在table根元素,也就是<el-table @filter-change="filterChange"></el-table>

2. 需要筛选的项,要写上 :column-key=" ' aaa ' " 

3. 要搜索全局,就要去掉对应筛选项的 :filter-method="xx"。 

ps:   filter-method 筛选当前页面,不会请求后端接口,条数多的话,会造成死循环

demo如下

<template>
<div class="app-container">
<div class="button-interval">
<el-row>
<el-input v-model="search" placeholder="请输入搜索内容......"
class="search-input"
@keyup.enter.native="fliterData"/>
</el-row>
</div> <el-table
v-loading="listLoading"
ref="myTable"
:data="blist | dataslice(listQuery.page, listQuery.limit)"
element-loading-text="拼命加载中......"
border
fit
highlight-current-row
@filter-change="fliterChange"
>
<el-table-column align="center" label="ID" prop="id" v-if="false"/>
<el-table-column align="center" label="主机IP" prop="ip"/>
<el-table-column align="center" label="主机名" prop="hostname"/>
<el-table-column align="center" label="主机类型" prop="hosttype"
:filters="hosttype_filters" filter-placement="bottom-end"
column-key="hosttype" :filter-multiple="false"/>
   <!--
        ......
        -->

<el-table-column align="center" label="创建时间" prop="create_time" sortable/>
<el-table-column align="center" label="更新时间" prop="update_time" sortable/>
</el-table> <!-- 前端分页 -->
<pagination
v-show="total>0"
:total="total"
:page.sync="listQuery.page"
:limit.sync="listQuery.limit"
/> </div> </template> <script>
import {queryHost} from '@/api/hostmanage'
import Pagination from '@/components/Pagination' export default {
name: 'HostList',
components: {Pagination},
filters: {
dataslice(array, page, limit) {
const offset = (page - 1) * limit
const newdata = (offset + limit >= array.length) ? array.slice(offset, array.length) : array.slice(offset, offset + limit)
return newdata
}
},
data() {
return {
list: [],
blist: [],
listLoading: true,
total: 0,
search: undefined,
listQuery: {
page: 1,
limit: 10,
},
hosttype_filters: [{text: '代理服务器', value: '代理服务器'}, {text: '普通服务器', value: '普通服务器'}], }
},
watch: {
search: function () {
this.fliterData()
}
},
created() {
this.fetchData();
},
methods: {
// 异步表格获取数据
fetchData() {
this.listLoading = true
queryHost().then(response => {
this.list = response.data
this.blist = response.data
this.listLoading = false
this.total = response.data.length
})
},
fliterData() {
const search = this.search
if (search) {
this.blist = this.list.filter(data => {
return Object.keys(data).some(key => {
return String(data[key]).toLowerCase().indexOf(search) > -1
})
})
this.total = this.blist.length
return this.blist
}
this.blist = this.list
this.total = this.blist.length
return this.list
},
fliterChange(filters){
const filterskey = filters.hosttype
console.log(filterskey)
if (filterskey.length>0) {
this.blist = this.list.filter(data => {
return Object.keys(data).some(key => {
return data['hosttype'] ===filterskey[0]
})
})
this.total = this.blist.length
return this.blist
}
this.blist = this.list
this.total = this.blist.length
return this.list
}
}
} </script>

element ui table+分页 筛选全部数据的更多相关文章

  1. element UI table 过滤 筛选问题

    一.问提描述    使用elementUI table 官方筛选案例,发现筛选不是服务器端筛选,而是浏览器端对每一页进行单独筛选. 如何在服务器端筛选? 二.查询Element UI 官网table组 ...

  2. VUE -- 对 Element UI table中数据进行二次处理

    时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...

  3. Vue+element ui table 导出到excel

    需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...

  4. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  5. Element UI table参数中的selectable的使用

    Element UI table参数中的selectable的使用中遇到的坑:页面: <el-table-column :selectable='selectable' type="s ...

  6. element ui table 导出excel表格

    https://blog.csdn.net/u010427666/article/details/79208145 vue2.0 + element UI 中 el-table 数据导出Excel1. ...

  7. element ui table(表格)点击一行展开

    element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...

  8. 普通element ui table组件的使用

    1.使用基础的element ui 的table的基础使用 首先,使用前要先引用element库到项目中,可以直接引入element的js和css或者在vue项目下按需加载不同的组件 废话不多说,直接 ...

  9. vue.js+element ui Table+spring boot增删改查

    小白初学,不懂的还是太多了,找了好多资料才做出来的先记录一下 1.先用Spring boot创建一个包含了增删改查的项目 2.创建vue.js项目 3.安装Element UI (1)进入项目文件夹下 ...

  10. element ui table render-header自定义表头信息使用

    在使用vue自定义组件内容过程之中,我们绝大多数情况下都是通过预先写好不同的html模板,再通过props传入不同的值来渲染不同的模板.例如我们需要实现一个<v-title size='1'&g ...

随机推荐

  1. Mathematica的介绍及使用方法

    Mathematica 是由 Wolfram Research 公司开发的数学软件,可用于数学.物理.工程.生物等领域的计算和建模.其官方网站为 www.wolfram.com/mathematica ...

  2. docker系列教程:docker图形化工具安装及docker系列教程总结

    通过前面的学习,我们已经掌握了docker-compose容器编排及实战了.高级篇也算快完了.有没有相关,我们前面学习的时候,都是通过命令行来操作docker的,难道docker就没有图形化工具吗?答 ...

  3. .NET 的 Native AOT 现在是什么样的?

    今天要写的这篇文章源自昨天在朋友圈发的文章<UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化>[1],一位小伙伴的对话让我想全面梳理下Native AO ...

  4. [30] CSP 加赛 1

    A.小W与伙伴招募 考虑贪心,可以发现,每一天只需要优先选择价值低的即可 这种贪心思路有一个错误的扩展,就是先把 \(m\) 天的货一次性补齐再一次性买,这样做的问题在于有可能买到次日的货,而这样做是 ...

  5. std::variant快速上手

    std::variant 是 C++17 引入的一种类型安全的联合体,用来存储多个可能类型中的一种值,且保证使用时的类型安全.相比于传统的 union,std::variant 不仅能够存储不同类型的 ...

  6. 更新预警(bushi)

    一回首,上次更新已经是将近3个月前了.但是博主不是似了,也不是逍遥快活游山玩水纸醉金迷乐不思蜀,而是上班太忙还是单休,所以没什么时间更新博客.但是今天我要开始忏悔了!预计更新以下几个专题(不一定真的会 ...

  7. HTB打靶记录-Cicada

    Nmap Scan nmap扫描一下ip nmap -sT -sV -O -Pn 10.10.11.35 Nmap scan report for 10.10.11.35 Host is up (0. ...

  8. 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16

    开源项目推荐 Reloader Reloader 是一个 Kubernetes 控制器,用于监控 ConfigMap 和 Secrets 中的变化,并对 Pod 及其相关部署.StatefulSet. ...

  9. 云原生周刊:K8s 在 v1.27 中移除的特性和主要变更

    文章推荐 K8s 在 v1.27 中移除的特性和主要变更 随着 Kubernetes 发展和成熟,为了此项目的整体健康,某些特性可能会被弃用.移除或替换为优化过的特性.基于目前在 v1.27 发布流程 ...

  10. FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频

    ​<FFmpeg开发实战:从零基础到短视频上线>一书的"5.1.2  把音频流保存为PCM文件"介绍了如何把媒体文件中的音频流转存为原始的PCM音频,在样例代码的转存过 ...