element表格ascii排序 (本地)
ascii码表
在element 表格中 在el-table-column加入sortMethod自定义排序方法orgCode是代表此列需要对应的排序字段,可以喝prop不一致
<el-table-column :sort-method="(a,b) => sortMethod(a ,b , 'orgCode')" sortable prop="departName" label="部门" show-overflow-tooltip min-width="130"> </el-table-column>
排序:兼容 数字排序 和 字符串排序(当然有些比如日期排序的,继续往上加if就行了) 从第一个字符开始比较ascii 大小,值到最后,不用管字符串长度,null 也是能转ascii码的
/**
* @description: 排序
* @param {*} a
* @param {*} b
* @return {*}
*/
sortMethod(a, b, str) {
if (typeof a[str] === 'number' && !isNaN(a[str])) {
return Number(a[str]) - Number(b[str])
} else {
let length = a[str].length >= b[str].length ? a[str].length : b[str].length
for (let i = 0; i < length; i++) {
if (a[str].charCodeAt(i) === b[str].charCodeAt(i)) {
console.log('相等')
} else {
return a[str].charCodeAt(i) - b[str].charCodeAt(i)
}
}
}
},