关于element中el-select数据量大时如何进行分页

Posted dwenz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于element中el-select数据量大时如何进行分页相关的知识,希望对你有一定的参考价值。

在使用element中的el-select中因为有时候数据可能会比较多,所以我就想分步加载显示,就像:

技术图片

因此我在组件中这么写的:

技术图片

下面是样式

<style lang=‘stylus‘ scoped>
    .selectJob
        span
            width 120px
            overflow hidden
            text-overflow ellipsis
            white-space nowrap
        .text
            padding-left 10px
            font-size 14px
            font-weight bold
            cursor pointer
            color cornflowerblue
<style>

我们可以打开F12审查元素,我们可以看到元素渲染之后的样子:

技术图片

 

 下面就以我自己写的项目为例,展示剩下的过程:

<script>
export default {
  data () {
    return {
      total: null // 获取总数据量
      pageCount: null // 获取总页数
      selectPage: 1 // 当前页数
      restoreTable: [] //当前页数数据
    };
  },
  mounted () {
    this.getTableList(); // 初始化
  },
  methods: {
    getTableList (form = {}) {
      let obj = Object.assign({}, 
 {currentPage:this.selectPage,pageSize: 20}, form);
      restoreList(obj).then(res => {
        if (res.data.data && !res.data.data.hasOwnProperty(‘list‘)) { this.restoreTable = []; return; };
        this.restoreTable = res.data.data.list;
        this.total = (res.data.data && res.data.data.totalSize); // 数据总数量
        this.pageCount = Math.ceil(this.total / 20); // 因为我每次只请求20条, 所以算出总页数
        this.taskId = this.restoreTable[0].id; // 因为每次都选取第一条数据;
      });
    },
    prevePage () {
      --this.selectPage;
      if (this.selectPage < 1) { // 判断点击的页数是否小于1
        this.selectPage = 1;
      };
      this.getTableList();
    },
    nextPage () {
      if (this.selectPage < this.pageCount) { // 判断点击的页数是否小于总页数;
        ++this.selectPage;
        this.getTableList();
      }
    }
  }
};
</script>                        

好了,所有经过大概就都是这样了

 

以上是关于关于element中el-select数据量大时如何进行分页的主要内容,如果未能解决你的问题,请参考以下文章

vue里使用虚拟列表处理element-ui的el-select选择器组件数据量大时卡顿问题

oracle 数据量大时如何快速查找需要数据

PHP 导出excel 数据量大时

vue+element el-select 选项无法选择的问题

DataTable 数据量大时,导致内存溢出的解决方案

vue element el-select hover