下方 obj 就是columns中得一项
let obj = {
title: item.name,
minWidth: item.width,
key: item.enName,
sortable: item.sortable,
sortMethod: (a, b, type) => {
return this.$utility.sortFun(a, b, type)
},
dataSourceList: item.dataSourceList || [],
}
sortFun(a, b, type) {
console.log(a, b, type)
// asc从小到大,排序规则,b 是第一个值
// 1.数字优于字母
// 2.字母根据首字母排序,相同得话比较下一位置字符, 数字排序也一样,比较下一位置
// 3.如果一样,比较下一位置字符
// 4.空字符,null,undefined 数字当0来排序,字符串当空字符来排序 基本是最小得
if (type == 'asc') {
if (typeof a == 'number') {
let aa = a ? a : 0
let bb = b ? b : 0
return aa > bb ? -1 : 1
} else {
let aa = a ? a : ''
let bb = b ? b : ''
return aa.localeCompare(bb)
}
} else {
if (typeof a == 'number') {
let aa = a ? a : 0
let bb = b ? b : 0
return bb > aa ? -1 : 1
} else {
let aa = a ? a : ''
let bb = b ? b : ''
return bb.localeCompare(aa)
}
}
},