处理VUE框架中,ElementUI控件u-table空值排序问题

发布于:2024-12-18 ⋅ 阅读:(119) ⋅ 点赞:(0)

按照以下步骤进行操作:

  1. 分离数据:首先,将原始数据按照username为空和非空进行分类。
  2. 对非空表进行排序:对非空表按照username进行升序排序。
  3. 合并表格:将空表和排序后的非空表合并,保证空表挂接在排序后的非空表后面。
  4. 赋值给tableData:将合并后的结果赋值给tableData
  5. 实现代码如下: 

<template>
  <el-table :data="tableData">
    <el-table-column label="Username" prop="username"></el-table-column>
    <el-table-column label="Other Data" prop="otherData"></el-table-column>
    <!-- 其他列 -->
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      // 原始数据(假设是从接口获取或定义的)
      originalData: [
        { username: 'Alice', otherData: 'Data 1' },
        { username: '', otherData: 'Data 2' },
        { username: 'Bob', otherData: 'Data 3' },
        { username: '', otherData: 'Data 4' },
        { username: 'Charlie', otherData: 'Data 5' },
        // ...更多数据
      ],
      tableData: [] // 最终显示的表格数据
    };
  },
  methods: {
    processData() {
      // 1. 分离空表和非空表
      const emptyUsernameData = this.originalData.filter(item => item.username === '');
      const nonEmptyUsernameData = this.originalData.filter(item => item.username !== '');
      
      // 2. 对非空表按照 username 进行升序排序
      const sortedNonEmptyData = nonEmptyUsernameData.sort((a, b) => {
        return a.username.localeCompare(b.username);
      });

      // 3. 合并非空表和空表
      this.tableData = [...sortedNonEmptyData, ...emptyUsernameData];
    }
  },
  created() {
    // 在组件加载时处理数据
    this.processData();
  }
};
</script>
 


网站公告

今日签到

点亮在社区的每一天
去签到