element ui table+分页 筛选全部数据
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+分页 筛选全部数据的更多相关文章
- element UI table 过滤 筛选问题
一.问提描述 使用elementUI table 官方筛选案例,发现筛选不是服务器端筛选,而是浏览器端对每一页进行单独筛选. 如何在服务器端筛选? 二.查询Element UI 官网table组 ...
- VUE -- 对 Element UI table中数据进行二次处理
时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...
- Vue+element ui table 导出到excel
需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...
- Element UI table组件源码分析
本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...
- Element UI table参数中的selectable的使用
Element UI table参数中的selectable的使用中遇到的坑:页面: <el-table-column :selectable='selectable' type="s ...
- element ui table 导出excel表格
https://blog.csdn.net/u010427666/article/details/79208145 vue2.0 + element UI 中 el-table 数据导出Excel1. ...
- element ui table(表格)点击一行展开
element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...
- 普通element ui table组件的使用
1.使用基础的element ui 的table的基础使用 首先,使用前要先引用element库到项目中,可以直接引入element的js和css或者在vue项目下按需加载不同的组件 废话不多说,直接 ...
- vue.js+element ui Table+spring boot增删改查
小白初学,不懂的还是太多了,找了好多资料才做出来的先记录一下 1.先用Spring boot创建一个包含了增删改查的项目 2.创建vue.js项目 3.安装Element UI (1)进入项目文件夹下 ...
- element ui table render-header自定义表头信息使用
在使用vue自定义组件内容过程之中,我们绝大多数情况下都是通过预先写好不同的html模板,再通过props传入不同的值来渲染不同的模板.例如我们需要实现一个<v-title size='1'&g ...
随机推荐
- 生产级Redis 高并发分布式锁实战2:缓存架构设计问题优化
对于大多数高并发场景,都是读多写少.比如商品信息,医生挂号信息等.提交订单页只有一个操作. 对于一个普通的缓存架构设计,实现商品的增删改查功能,代码如下: Controller 层 @RestCont ...
- 通用能力及AI核心能力表现优异!合合信息智能文档处理系统(IDP)高评级通过中国信通院评估
数字经济快速发展的背后,全球数据总量呈现出爆发式增长趋势.智能文档处理(IDP)技术能够高效地从多格式文档中捕捉.提取和处理数据,帮助机构和企业大幅提升文档处理效率,节约时间和人力成本.近期,合合信息 ...
- LeetCode 1397. Find All Good Strings 找到所有好字符串 (数位DP+KMP)
好题- 就是比平时的 hard 难了一些-- 虽然猜出是数位DP了-不过比我之前做的题,好像多了一维,印象中都是一维记录之前状态就够了--然后就没做出-- 至于 KMP 的应用更是神奇,虽然掌握的 k ...
- map,unordered_map,multimap,unordered_multimap
std::map(有序映射) std::unordered_map(无序映射) std::multimap(有序多重映射) std::unordered_multimap(无序多重映射) 它们的使用方 ...
- 模板声明的两种形式:template<int N> 和 template<N>
template<int N>:非类型模板参数 template<int N> 是一个典型的非类型模板参数的例子.这里的 N 是模板的参数,但它不是一个类型,而是一个具体的整数 ...
- Android平台下的cpu利用率优化实现
目录 背景 CPU调频 概念 实现 验证 线程CPU亲和性 概念 亲和性控制 API 应用层控制实现 验证 线程优先级 概念 实现 验证 背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的 ...
- 如何理解iowait
Linux中,%iowait 过高可能是个问题,严重的时候,它能使服务停止, 但问题是,多高才算高? 什么时候应该担心呢? 本文将讨论 iowait 的含义.相关的统计数据.原理以及 iowait的瓶 ...
- OCR+PDF解析配套前端工具开源详解!
面对日常生活和工作中常见的OCR识别.PDF解析.翻译.校对等场景,配套的可视化工具能够极大地提升我们的使用体验和工作效率. 通过可视化界面,我们可以直观地看到文本识别.解析和翻译的结果,便捷评估产品 ...
- MySQL数据的导入
我们在帖子MySQL数据的导出 - brucexia - 博客园 (cnblogs.com)中讲了MySQL数据的导出,本文讲讲解MySQL数据的导入. MySQL数据的导入包括使用LOAD DATA ...
- 混合云下的 Kubernetes 多集群管理与应用部署
本文是上海站 Meetup 中讲师李宇根据其分享内容梳理成的文章 大家好,很高兴来到今天下午的 Meetup.我先简单做个自我介绍,我叫李宇,目前是 KubeSphere 的一名研发,主要负责多集群方 ...