vue树形多列_[vue]使用Element-ui的el-table实现多列同时排序。
freddon
发表于2019-09-09
阅读 2673 |
评论 0
最近遇到默认排序只会保留当前排序,所以根据文档实现多列排序
直接切入正题。
多列排序主要用到el-table的`header-cell-class-name`和`sort-change`;
__header-cell-class-name__
> 表头单元格的 className 的回调方法,也可以使用字符串为所有表头单元格设置一个固定的 className。
__sort-change__
> 当表格的排序条件发生变化的时候会触发该事件
先开启远程搜索,给需要排序的列上加`sortable='custom'`
核心代码:
```html
@sort-change="handleSortChange"
:data="tableData"
:header-cell-class-name="handleHeaderCellClass">
const maxOrderCount = 2;//最大同时排序个数
//....
data(){
return {
orderDict: {},//prop属性对应的升降序排序字典
orderStackSet: [],//排序顺序,存储的prop属性字段
}
},
methods: {
numericString,
handleSortChange({ column, prop, order }) {
this.orderStackSet=this.orderStackSet.filter(item=>item!=prop);
if (order) {
this.orderDict[prop] = order;
this.orderStackSet.push(prop);
} else {
delete this.orderDict[prop];
}
if (this.orderStackSet.length > maxOrderCount) {
let del=this.orderStackSet.splice(0,1);
let leftEl=del[0];
delete this.orderDict[leftEl];
}
this.loadData();//网络请求
},
handleHeaderCellClass({ row, column, rowIndex, columnIndex }) {
if (this.orderStackSet.length > 0) {
let arr = this.orderStackSet;
let currentField = arr[arr.length - 1];
if (currentField) {
return this.orderDict[column.property];
}
}
return "";
},
}
```
以上。
分类 :日常记录
直接切入正题。
多列排序主要用到el-table的`header-cell-class-name`和`sort-change`;
__header-cell-class-name__
> 表头单元格的 className 的回调方法,也可以使用字符串为所有表头单元格设置一个固定的 className。
__sort-change__
> 当表格的排序条件发生变化的时候会触发该事件
先开启远程搜索,给需要排序的列上加`sortable='custom'`
核心代码:
```html
@sort-change="handleSortChange"
:data="tableData"
:header-cell-class-name="handleHeaderCellClass">
const maxOrderCount = 2;//最大同时排序个数
//....
data(){
return {
orderDict: {},//prop属性对应的升降序排序字典
orderStackSet: [],//排序顺序,存储的prop属性字段
}
},
methods: {
numericString,
handleSortChange({ column, prop, order }) {
this.orderStackSet=this.orderStackSet.filter(item=>item!=prop);
if (order) {
this.orderDict[prop] = order;
this.orderStackSet.push(prop);
} else {
delete this.orderDict[prop];
}
if (this.orderStackSet.length > maxOrderCount) {
let del=this.orderStackSet.splice(0,1);
let leftEl=del[0];
delete this.orderDict[leftEl];
}
this.loadData();//网络请求
},
handleHeaderCellClass({ row, column, rowIndex, columnIndex }) {
if (this.orderStackSet.length > 0) {
let arr = this.orderStackSet;
let currentField = arr[arr.length - 1];
if (currentField) {
return this.orderDict[column.property];
}
}
return "";
},
}
```
以上。
评论(0)
先登录,才能发评论哦~
vue树形多列_[vue]使用Element-ui的el-table实现多列同时排序。相关推荐
- 《前端》Element ui 表格(Table)组件中前端实现数据分页和模糊查询--未看
我是用的Element ui 表格(Table)组件中的例子 下面是别人自己写的方法: Element ui 表格(Table)组件中前端实现数据分页和模糊查询_明天也要努力的博客-CSDN博客 h ...
- vue element ui合并表格(合并某列的行数据)
需求:按需合并某些列的数据 自定义数据: tableData:[ { num:0, new_subject_name:"new_subject_name1", count1:&qu ...
- axios vue 加载效果动画_vue+axios+element ui 实现全局loading加载示例
实现全局loading加载 分析需求,我们只需要在请求发起的时候开始loading,响应结束的时候关闭loading,就这么简单 对不对? import axios from 'axios'; imp ...
- vue组件库介绍以及组件库Element UI 的使用
组件库 前言 这篇文章介绍vue组件库! 介绍什么是组件库以及Element UI组件库的使用! 看完不会你打我.哈哈哈,开玩笑的,不多说,上刺刀!! 1. 什么是 vue 组件库 在实际开发中,前端 ...
- vue页面自适应屏幕宽高_Vue+Element UI 高度实时自适应
本文章是我一个实习两个月的练习生,在项目中遇到的问题,在此记录,防治以后再踩坑!! Element ui 本身使用的Container 布局容器,组件采用 flex 布局.所以用了它的布局就可以做到宽 ...
- easyui前端实现多选框_前端:Element UI 多选框组用法笔记
今天给大家分享一下Element UI 多选框组用法笔记,直接上代码! "兴趣爱好:"> "form.checkList"> for= {{item ...
- hbase中列簇和列_为什么不建议在hbase中使用过多的列簇
我们知道,hbase表可以设置一个至多个列簇(column families),但是为什么说越少的列簇越好呢? 官网原文: HBase currently does not do well with ...
- python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- mysql纵列变横列_(转载)SQL语句,纵列转横列
SQL语句,纵列转横列 Feed: 大富翁笔记 Title: SQL语句,纵列转横列 Author: wzmbox Comments sTable.db 库位 货物编号 库存数 1 0101 50 1 ...
最新文章
- if(a==1且a==2且a==3),有没有可能为true?
- 7-19晚牛客网刷题未知点、错题 集合
- android 复制u盘文件到手机本地_如何导出Android中的文件(把Android当做U盘)
- 花了20分钟,给女朋友们写了一个web版群聊程序
- React传递参数的多种方式
- dell-inspiron-5439 uefi 黑苹果_follow me 跟我一起学黑苹果原版安装
- Android Studio如何允许访问网络资源
- 新手干货:Vue - 事件修饰符
- oracle函数 TO_MULTI_BYTE(c1)
- Rocketmq如何保证消息不丢失,如何保证消息不被重复消费
- Discuz!如何实现为版块设定自定义logo,实现不同的版块不同的logo!
- wow修改人物模型_wow - 1.12 - 修改 人物 模型 ,
- Eclipse配置优化
- 全面认识思科系列交换机型号
- JS 动画基础: 细说 requestAnimationFrame
- bat(batch)入门简介
- Win11安装 eNSP模拟器
- 希腊字母表__手写 拍照版
- 什么是stm32的部分重映像与完全重映像
- EAS 二维码套打
热门文章
- Spark Shuffle 解析
- django(models)视图与html 简单的操作
- 《C#高级编程》既不高级,也不基础,东拼西凑的味道十足。。。
- C++程序设计之可调用对象与标准库function
- 计算机视觉开源库OpenCV之边缘检测cv2.canny()函数
- matlab 读取WAV文件
- windows server 2008 R2系统安装教程
- opencv 图像 抠图 算法_人人可用的在线抠图,AI自动化的那种!北大校友算法玩出新高度...
- html 内部浮动外部不,CSS:外部层高度自适应内部浮动层高度的方法
- yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问