我这个是把第一行 不加在排序里。去掉 不排序的行 在把数据进行排序。
这样会有一个问题,就是在分页 时 他就不自己排序了。所以 在拉取数据时在触发这个方法就行了,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() // 清除排序
}
}