el-table 表头 自定义排序 因为有的行可能不需要排序。

11 篇文章 0 订阅

我这个是把第一行 不加在排序里。去掉 不排序的行 在把数据进行排序。

这样会有一个问题,就是在分页 时  他就不自己排序了。所以 在拉取数据时在触发这个方法就行了,column 单独存一下。data里。

dom : 配置 sortable="custom"     <el-table-column sortable="custom" align="center"/>

sortChange(column) {

let fieldName = column.prop

let sortingType = column.order

let tableData = this.tableData

let avgData = {} // 

tableData.map((item, index) => {

if (!index) {

avgData = item

}

})

if (sortingType == 'ascending') {

// 删除table中当页合计一行数据

tableData.forEach((item, index) => {

if (!index) {

tableData.splice(index, 1)

}

return item

})

//正序

tableData = tableData.sort((a, b) => {

if (typeof a[fieldName] == 'string') {

b[fieldName] = b[fieldName] || ''

return b[fieldName].localeCompare(a[fieldName])

} else if (typeof a[fieldName] == 'number') {

return b[fieldName] - a[fieldName]

}

})

tableData.unshift(avgData)

} else if (sortingType == 'descending') {

tableData.map((item, index) => {

if (!index) {

tableData.splice(index, 1)

}

return item

})

// 倒序

tableData = tableData.sort((a, b) => {

if (typeof a[fieldName] == 'string') {

a[fieldName] = a[fieldName] || ''

return a[fieldName].localeCompare(b[fieldName])

} else if (typeof a[fieldName] == 'number') {

return a[fieldName] - b[fieldName]

}

})

tableData.unshift(avgData)

} else {

this.$refs.tableRef[0].clearSort() // 清除排序

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值