el-table 辅助排序(解决空值时排序错乱问题)

/**
 ** el-table 辅助排序(解决空值时排序错乱问题)
 * tableData 待排序数据
 * column 当前排序规则
 * return 排序后的数据
 */
export const tableSortChange = (tableData=[], column={}) => {
  // console.log('--tableSortChange--', tableData, column)
  if(column.order !== null) {
    let data = [];
    let empData = [];
    //把空值和有值分两端放,table组件就可以处理排序了
    tableData.forEach((item, i) => {
      if(item[column.prop]) {
        data.push(item);
      } else {
        empData.push(item);
      }
      if(!item.hasOwnProperty('index')) {
        item.index = i; //记录原始顺序
      }
    });
    return [].concat(empData, data);
  } else {
    //不排序时
    tableData.sort((a, b) => {
      return a.index - b.index;
    });
    return tableData;
  }
};
posted @ 2022-07-06 14:31  djzz  阅读(966)  评论(0)    收藏  举报