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】实现动态树、数据表格及分页效果
在现代软件开发中,动态树、数据表格以及分页效果成为了许多应用的核心需求。随着业务规模和复杂性的增加,我们往往需要展示大量的层级结构数据,并且实现交互性强且高效的操作。 动态树提供了一种组织结构清晰、可伸缩的展示方式,使用户可以方便地查看和操作树节点。数据表格则是以表格形式呈现数据,在其中用户可以进行排序、筛选、编辑等操作。 而分页效果则能够将大量数据分割成易于管理和浏览的一页或一页的内容。这三种功能的结合,不仅使得我们能够更好地处理庞大的数据集合,同时也使得用户能够快速定位所需信息。 本文将介绍如何使用现代前端技术实现动态树、数据表格及分页
|
9月前
|
资源调度 JavaScript 前端开发
将Elementui里的Table表格做成响应式并且和Pagination分页组件封装在一起(Vue实战系列)
将Elementui里的Table表格做成响应式并且和Pagination分页组件封装在一起(Vue实战系列)
431 2
|
前端开发 API 网络架构
Vue+ElementUI实现动态树和表格数据的分页模糊查询
Vue+ElementUI实现动态树和表格数据的分页模糊查询
187 0
|
9月前
|
前端开发 JavaScript
vue实现通用分页控件,支持前端分页、后端分页。
vue实现通用分页控件,支持前端分页、后端分页。
119 1
|
9月前
|
前端开发
antd-protable的分页逻辑封装
antd-protable的分页逻辑封装
489 0
|
9月前
element plus 表各组件怎样和分页组件配合使用
element plus 表各组件怎样和分页组件配合使用
133 0
|
JavaScript
vue表格分页以及增删改查的实际应用
vue表格分页以及增删改查的实际应用
106 0
|
JavaScript
VUE element-ui之table表格全局排序、调用后端接口排序功能
VUE element-ui之table表格全局排序、调用后端接口排序功能
1551 0
|
JavaScript 数据库 UED
Vue 的动态菜单表格数据展示以及分页查询实现
Vue 的动态菜单表格数据展示以及分页查询实现
179 0
|
前端开发
Concis组件库封装——Pagination分页器
Concis组件库封装——Pagination分页器组件封装
119 1
Concis组件库封装——Pagination分页器

热门文章

最新文章