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>
目录
相关文章
|
10月前
|
SQL 前端开发 搜索推荐
【Element-UI】实现动态树、数据表格及分页效果
在现代软件开发中,动态树、数据表格以及分页效果成为了许多应用的核心需求。随着业务规模和复杂性的增加,我们往往需要展示大量的层级结构数据,并且实现交互性强且高效的操作。 动态树提供了一种组织结构清晰、可伸缩的展示方式,使用户可以方便地查看和操作树节点。数据表格则是以表格形式呈现数据,在其中用户可以进行排序、筛选、编辑等操作。 而分页效果则能够将大量数据分割成易于管理和浏览的一页或一页的内容。这三种功能的结合,不仅使得我们能够更好地处理庞大的数据集合,同时也使得用户能够快速定位所需信息。 本文将介绍如何使用现代前端技术实现动态树、数据表格及分页
|
10月前
|
算法 JavaScript Java
通用分页【下】(将分页封装成标签)
调试()是指在软件开发过程中,通过识别、定位和解决程序错误或问题的过程。调试的目的是找出代码中的错误、异常或不正常的行为,并修复它们,以确保程序能够按照预期的方式运行。调试是一个重要的开发技巧,可以帮助开发人员理解程序的执行过程、找出错误的原因,并从中学习和改进。调试可以使用不同的工具和技术来辅助,例如打印输出、日志记录、调试器(debugger)等。调试是开发过程中不可或缺的一部分,可以帮助开发人员提高代码质量、加快解决问题的速度,并优化程序的性能和可靠性。
|
2月前
|
前端开发 JavaScript
vue实现通用分页控件,支持前端分页、后端分页。
vue实现通用分页控件,支持前端分页、后端分页。
59 1
|
2月前
|
前端开发
antd-protable的分页逻辑封装
antd-protable的分页逻辑封装
198 0
|
前端开发
Concis组件库封装——Pagination分页器
Concis组件库封装——Pagination分页器组件封装
87 1
Concis组件库封装——Pagination分页器
|
12月前
Vue3手写分页在分页的基础上用到Pagination 分页组件
Vue3手写分页在分页的基础上用到Pagination 分页组件
73 0
|
前端开发
Element ui 表格(Table)组件中前端实现数据分页和模糊查询
Element ui 表格(Table)组件中前端实现数据分页和模糊查询
506 0
Element ui 表格(Table)组件中前端实现数据分页和模糊查询
|
数据库 C# 数据库管理
C#:Winfrom 实现DataGridView 自定义分页
今天给大家分享Winform实现DataGridView 自定义分页的案例,感兴趣的朋友可以一起来学习一下。 采用技术:C\#+Winform+Dapper+SQLite。
C#:Winfrom 实现DataGridView 自定义分页
|
前端开发 PHP
Laravel8 分页样式问题
一、问题:分页样式只显示上一页和下一页,中间的页码不显示

热门文章

最新文章