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 ...
随机推荐
- 怎样在局域网中给网站作ssl认证,使其能以https协议访问(转)
如果要在局域网达到效果需要满足以下几点要求: 1. 证书由可信任的CA机构颁发 2. 证书在有效期 3. 访问地址和证书的认证地址一致 说明: 1. 需要在局域网内构建CA机构 2. 证书的有效期建议 ...
- Chrome 浏览器远程调试 【转】
Chrome 浏览器按F12,可以调试JS,分析HTTP包等.但是有时候需要远程调试. 比如,某个EXE它内部嵌套了浏览器的话,可以想办法打开它的远程调试功能,然后在外部连到这个地址,就能分析它的ht ...
- Argo CD初体验
什么是 Argo CD? Argo CD 是一个声明式的 GitOps 持续交付工具,用于 Kubernetes 集群.它通过持续监控 Git 仓库中的 Kubernetes 资源配置文件,将这些配置 ...
- Vue SPA项目如何修改网站标题
直接贴 门户项目代码 // 全局router 直接挂载路由导航守卫 router.beforeEach((to, from, next) => { if (to.meta.title) { va ...
- logistic和softmax
一直觉得logistic regression就是softmax的一种特殊的形式,softmax是多类,logistic是两类. 但是今天仔细想了想logistic的意义以及softmax的意义,感觉 ...
- 人脸识别 face detect & recognize
前言 最近有一个项目要升级. 它是一个在线教育的 web app. 由于学生年龄小, 不适合用 username/password 这种方式做登入. 所以项目开始之初是使用 RFID 来登入的. 但由 ...
- QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口?
QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口? 简介 本文介绍了QT6窗口系统中的QT底层窗口 ...
- 大模型训练:K8s 环境中数千节点存储最佳实践
今天这篇博客来自全栈工程师朱唯唯,她在前不久举办的 KubeCon 中国大会上进行了该主题分享. Kubernetes 已经成为事实的应用编排标准,越来越多的应用在不断的向云原生靠拢.与此同时,人工智 ...
- [TK] 颜色
谴责这道题发明在线莫队的人,简直就是异端,还好我给在线莫队卡了,支持正义制裁 题意简述 给定序列,设 \(f(l,r,x)\) 表示 \(x\) 在 \([l,r]\) 内的出现次数,对给定 \(l, ...
- C语言数据类型、变量的输入和输出、进制转换
scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件 在scanf函数调用语句里应该使用存储区的地址表示存储区:双引号里使用占位符表示存储区的类型 ...