zoukankan      html  css  js  c++  java
  • Element表格eltable多列排序,后端接口排序

    ElementUI 2.x版本的 table 组件目前是不支持多列排序的,此方法适用于框架下的table组件多列数据排序,将排序方式以数组形式传递给后端排序。
    效果如下:


     
    image.png

    1.Table组件多列排序

    //  el-table标签中增加handleSortChange和handleHeaderCellClass方法
    //  el-table-column标签中增加sortable='custom'
    <el-table
        @sort-change="handleSortChange"
        :header-cell-class-name="handleHeaderCellClass">
          <el-table-column
              prop="XXX"
              :label="XXX"
              sortable='custom'>
          </el-table-column>
          <el-table-column
              prop="XXX"
              :label="XXX"
              sortable='custom'>
          </el-table-column>
          <el-table-column
              prop="XXX"
              :label="XXX"
              sortable='custom'>
          </el-table-column>
    </el-table>
    
    

    2.定义Data数组存放筛选数据

    //  data中定义Arr数组,用来存放筛选列
    data(){
        return {
            orderArray: [],
        }
    }
    

    3.排序方法

                //排序方法
                handleHeaderCellClass({row, column, rowIndex, columnIndex}){
                    this.orderArray.forEach(element => {
                        if (column.property===element.prop) {
                            column.order=element.order
                        }
                    });
                },
                handleSortChange( {column, prop, order} ){    //order值(ascending、descending、null)对应不同的排序方式
                    if (order) {  //参与排序
                        let flagIsHave=false
                        this.orderArray.forEach(element => {
                            if (element.prop === prop) {
                                element.order=order
                                flagIsHave=true
                            }
                        });
                        if (!flagIsHave) {
                            this.orderArray.push({
                                prop:prop,
                                order:order
                            })
                        }
                    }else{  //不参与排序
                        let orderIndex=0
                        this.orderArray.forEach((element,index) => {
                            if (element.prop === prop) {
                                orderIndex=index
                            }
                        });
                        this.orderArray.splice(orderIndex,1)
                    }
                    console.log(this.orderArray,"this.orderArray000")
                },
    
     
    转自:https://www.jianshu.com/p/ac32b9c1fba0 
  • 相关阅读:
    Mysql 数据插入 修改删除
    Mysql 查询
    详解path.resolve 以及path.join
    谈一下_前端模块化
    正则表达式学习(二)
    正则表达式学习(一)
    HTML中块元素与内联元素的概念
    Deepin linux Compass.app安装
    Deepin MongoDB安装&使用总结
    【修复】当Deepin开机进入BusyBox时修复
  • 原文地址:https://www.cnblogs.com/javalinux/p/15722041.html
Copyright © 2011-2022 走看看