使用element table表格实现后端排序

1、在el-table-colum中将sortables设置为custom,在table中监听sort-chang事件,在事件获取当前排序的字段名和排序顺序,向接口发送排序后的表格数据。

<el-table :data="tableData" border style="width: 100%; margin-top: 10px" @sort-change="sortChange">
      <el-table-column
        type="index"
        width="100"
        label="序号"
        align="center"
      ></el-table-column>
      <el-table-column prop="company" label="公司" width="200" align="center" sortable='custom'>
      </el-table-column>
 </el-table>
 

2、在methods监听sort-chang事件

export defult (){
	data(){
	return{
		sidx:'',
      	order:'',
		}
	},
	methods:{
	// 排序
    sortChange(column){
      console.log(column.prop,column.order,'777')
      if(column.order === 'descending' ){
        this.sidx  = column.prop  //  当前排序的字段
        this.order = 'desc' // 排序或倒序
      }else {
        this.sidx = column.prop
        this.order = 'asc' // 排序或倒序
      }
      this.getSmsList()
    }
    // 请求
    getSmsList(){
    this.$http({
        url: this.$http.adornUrl("recipient/list"),
        method: "get",
        params: this.$http.adornParams({
          page: this.pageIndex,
          limit: this.pageSize,
          sidx: this.sidx,  // 当前排序的字段
          order:this.order  // 排序或倒序
        })
     }).then((res)=>{
     		console.log(res)
     	})
 		}
	}	
}

收工,下班~

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里给出一个使用 Element UI 的 el-table 进行多列排序,并使用后端排序的代码示例: HTML模板部分: ```html <el-table :data="tableData" :default-sort="defaultSort" :sort-method="sortMethod"> <el-table-column prop="name" label="姓名" sortable="custom"></el-table-column> <el-table-column prop="age" label="年龄" sortable="custom"></el-table-column> <el-table-column prop="score" label="成绩" sortable="custom"></el-table-column> </el-table> ``` JavaScript部分: ```javascript export default { data() { return { tableData: [], // 表格数据 defaultSort: { // 默认排序 prop: 'name', order: 'ascending' }, sortColumns: [] // 多列排序的列属性数组 } }, methods: { // 多列排序方法 sortMethod(a, b) { for (let i = 0; i < this.sortColumns.length; i++) { const column = this.sortColumns[i] const prop = column.prop const order = column.order // 比较函数 const compareFn = (x, y) => { const a = x[prop] const b = y[prop] const result = a === b ? 0 : (a > b ? 1 : -1) return order === 'ascending' ? result : -result } const result = compareFn(a, b) if (result !== 0) { return result } } return 0 }, // 排序列变化回调函数 handleSortChange({ prop, order }) { // 清空之前的排序列 this.sortColumns = [] // 添加当前的排序列 if (prop && order) { this.sortColumns.push({ prop, order }) } // 发送后端排序请求 this.fetchData() }, // 后端排序数据请求 fetchData() { const params = { sortColumns: this.sortColumns } // 发送请求并更新表格数据 // ... } } } ``` 解释: 1. 在 el-table-column 中设置 sortable 属性为 custom,表示使用自定义排序方式。 2. 在 el-table 中设置 default-sort 属性为默认排序方式,并设置 sort-method 属性为多列排序方法。 3. 在多列排序方法中,遍历 sortColumns 数组,按照列属性和排序方式进行排序比较。 4. 在 handleSortChange 回调函数中,监听排序列变化事件,清空之前的排序列,添加当前的排序列,并发送后端排序请求。 5. 在 fetchData 函数中,发送后端排序请求,传递 sortColumns 参数,更新表格数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值