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实现多列同时排序。相关推荐

  1. 《前端》Element ui 表格(Table)组件中前端实现数据分页和模糊查询--未看

    我是用的Element ui 表格(Table)组件中的例子 下面是别人自己写的方法: Element ui 表格(Table)组件中前端实现数据分页和模糊查询_明天也要努力的博客-CSDN博客  h ...

  2. vue element ui合并表格(合并某列的行数据)

    需求:按需合并某些列的数据 自定义数据: tableData:[ { num:0, new_subject_name:"new_subject_name1", count1:&qu ...

  3. axios vue 加载效果动画_vue+axios+element ui 实现全局loading加载示例

    实现全局loading加载 分析需求,我们只需要在请求发起的时候开始loading,响应结束的时候关闭loading,就这么简单 对不对? import axios from 'axios'; imp ...

  4. vue组件库介绍以及组件库Element UI 的使用

    组件库 前言 这篇文章介绍vue组件库! 介绍什么是组件库以及Element UI组件库的使用! 看完不会你打我.哈哈哈,开玩笑的,不多说,上刺刀!! 1. 什么是 vue 组件库 在实际开发中,前端 ...

  5. vue页面自适应屏幕宽高_Vue+Element UI 高度实时自适应

    本文章是我一个实习两个月的练习生,在项目中遇到的问题,在此记录,防治以后再踩坑!! Element ui 本身使用的Container 布局容器,组件采用 flex 布局.所以用了它的布局就可以做到宽 ...

  6. easyui前端实现多选框_前端:Element UI 多选框组用法笔记

    今天给大家分享一下Element UI 多选框组用法笔记,直接上代码! "兴趣爱好:"> "form.checkList"> for= {{item ...

  7. hbase中列簇和列_为什么不建议在hbase中使用过多的列簇

    我们知道,hbase表可以设置一个至多个列簇(column families),但是为什么说越少的列簇越好呢? 官网原文: HBase currently does not do well with ...

  8. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  9. mysql纵列变横列_(转载)SQL语句,纵列转横列

    SQL语句,纵列转横列 Feed: 大富翁笔记 Title: SQL语句,纵列转横列 Author: wzmbox Comments sTable.db 库位 货物编号 库存数 1 0101 50 1 ...

最新文章

  1. if(a==1且a==2且a==3),有没有可能为true?
  2. 7-19晚牛客网刷题未知点、错题 集合
  3. android 复制u盘文件到手机本地_如何导出Android中的文件(把Android当做U盘)
  4. 花了20分钟,给女朋友们写了一个web版群聊程序
  5. React传递参数的多种方式
  6. dell-inspiron-5439 uefi 黑苹果_follow me 跟我一起学黑苹果原版安装
  7. Android Studio如何允许访问网络资源
  8. 新手干货:Vue - 事件修饰符
  9. oracle函数 TO_MULTI_BYTE(c1)
  10. Rocketmq如何保证消息不丢失,如何保证消息不被重复消费
  11. Discuz!如何实现为版块设定自定义logo,实现不同的版块不同的logo!
  12. wow修改人物模型_wow - 1.12 - 修改 人物 模型 ,
  13. Eclipse配置优化
  14. 全面认识思科系列交换机型号
  15. JS 动画基础: 细说 requestAnimationFrame
  16. bat(batch)入门简介
  17. Win11安装 eNSP模拟器
  18. 希腊字母表__手写 拍照版
  19. 什么是stm32的部分重映像与完全重映像
  20. EAS 二维码套打

热门文章

  1. Spark Shuffle 解析
  2. django(models)视图与html 简单的操作
  3. 《C#高级编程》既不高级,也不基础,东拼西凑的味道十足。。。
  4. C++程序设计之可调用对象与标准库function
  5. 计算机视觉开源库OpenCV之边缘检测cv2.canny()函数
  6. matlab 读取WAV文件
  7. windows server 2008 R2系统安装教程
  8. opencv 图像 抠图 算法_人人可用的在线抠图,AI自动化的那种!北大校友算法玩出新高度...
  9. html 内部浮动外部不,CSS:外部层高度自适应内部浮动层高度的方法
  10. yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问