iView分页表格封装

简介: iView分页表格封装

分页:https://www.iviewui.com/components/page

表格:https://www.iviewui.com/components/table

<template>
  <div>
    <Table ref="table" v-if="!refresh" :loading="loading" :data="showData" :columns="columns" stripe :border="border">
    </Table>
    <div style="margin: 10px;overflow: hidden">
      <div style="float: right;">
        <Page show-elevator :simple="$isMobile" show-total show-sizer prev-text="上一页" next-text="下一页" :total="total" :current="currentPage"
          @on-change="onPageChange" @on-page-size-change="onPageSizeChange"></Page>
      </div>
    </div>
  </div>
</template>
 
<script>
  export default {
    data() {
      return {
        refresh: false,
        currentPage: 1,
        pageSize: 10
      }
    },
    props: {
      columns: {
        type: Array,
        default: () => []
      },
      data: {
        type: Array,
        default: () => []
      },
      border: {
        type: Boolean,
        default: false
      },
      loading: {
        type: Boolean,
        default: false
      }
    },
    computed: {
      showData: function() {
        var firstIndex = (this.currentPage - 1) * this.pageSize;
        return this.data.slice(firstIndex, firstIndex + this.pageSize);
      },
      total: function() {
        return this.data.length;
      }
    },
    methods: {
      getSelection() {
        return this.$refs.table.getSelection();
      },
      formatDate(date) {
        const y = date.getFullYear();
        let m = date.getMonth() + 1;
        m = m < 10 ? '0' + m : m;
        let d = date.getDate();
        d = d < 10 ? ('0' + d) : d;
        return y + '-' + m + '-' + d;
      },
      editRow(index, name, value) {
        var targetIndex = (this.currentPage - 1) * this.pageSize + index;
        this.data.forEach(function(currentValue, currentIndex, arr) {
          if (targetIndex == currentIndex) {
            currentValue[name] = value;
          }
        })
      },
      redraw() {
        this.refresh = true
        this.$nextTick(() => {
          this.refresh = false
        })
      },
      onPageChange(currentPage) {
        this.currentPage = currentPage;
      },
      onPageSizeChange(pageSize) {
        this.pageSize = pageSize;
      }
    }
  }
</script>
 
<style>
</style>
相关文章
|
SQL 前端开发 搜索推荐
【Element-UI】实现动态树、数据表格及分页效果
在现代软件开发中,动态树、数据表格以及分页效果成为了许多应用的核心需求。随着业务规模和复杂性的增加,我们往往需要展示大量的层级结构数据,并且实现交互性强且高效的操作。 动态树提供了一种组织结构清晰、可伸缩的展示方式,使用户可以方便地查看和操作树节点。数据表格则是以表格形式呈现数据,在其中用户可以进行排序、筛选、编辑等操作。 而分页效果则能够将大量数据分割成易于管理和浏览的一页或一页的内容。这三种功能的结合,不仅使得我们能够更好地处理庞大的数据集合,同时也使得用户能够快速定位所需信息。 本文将介绍如何使用现代前端技术实现动态树、数据表格及分页
VUE3(二十三)自定义分页组件Pagination
刚开始使用vue3写博客的时候,其相关配套的UI库并没有正式发布,但是我还要用,所以这里我自定义了一个分页组件。
696 0
VUE3(二十三)自定义分页组件Pagination
|
7月前
|
JavaScript
使用ElementPlus实现内嵌表格和内嵌分页
使用ElementPlus实现内嵌表格和内嵌分页的Vue组件示例。
166 0
使用ElementPlus实现内嵌表格和内嵌分页
|
算法 JavaScript Java
通用分页【下】(将分页封装成标签)
调试()是指在软件开发过程中,通过识别、定位和解决程序错误或问题的过程。调试的目的是找出代码中的错误、异常或不正常的行为,并修复它们,以确保程序能够按照预期的方式运行。调试是一个重要的开发技巧,可以帮助开发人员理解程序的执行过程、找出错误的原因,并从中学习和改进。调试可以使用不同的工具和技术来辅助,例如打印输出、日志记录、调试器(debugger)等。调试是开发过程中不可或缺的一部分,可以帮助开发人员提高代码质量、加快解决问题的速度,并优化程序的性能和可靠性。
|
10月前
|
资源调度 JavaScript 前端开发
将Elementui里的Table表格做成响应式并且和Pagination分页组件封装在一起(Vue实战系列)
将Elementui里的Table表格做成响应式并且和Pagination分页组件封装在一起(Vue实战系列)
459 2
|
10月前
|
前端开发 JavaScript
vue实现通用分页控件,支持前端分页、后端分页。
vue实现通用分页控件,支持前端分页、后端分页。
128 1
|
10月前
|
前端开发
antd-protable的分页逻辑封装
antd-protable的分页逻辑封装
504 0
|
10月前
element plus 表各组件怎样和分页组件配合使用
element plus 表各组件怎样和分页组件配合使用
141 0
|
JavaScript
vue表格分页以及增删改查的实际应用
vue表格分页以及增删改查的实际应用
112 0
|
JavaScript 数据库 UED
Vue 的动态菜单表格数据展示以及分页查询实现
Vue 的动态菜单表格数据展示以及分页查询实现
186 0