Vue+element-ui 实现表格的分页功能示例

本文介绍了Vue+element-ui 实现表格的分页功能示例,分享给大家,具体如下:

实现效果如下图所示:

template部分:

<el-table
  :data="tempList"
  :header-cell-style="rowClass"
  stripe
  border style="margin-bottom:14px;"
  :empty-text="emptyText">
  <el-table-column property="name" label="债券名称" width="228"></el-table-column>
  <el-table-column property="marketValue" label="市值" width="228" align="right" :formatter="formatDecimal2"></el-table-column>
  <el-table-column property="type" label="债券类型"></el-table-column>
  <el-table-column property="ratio" label="占母基金的比重" align="right" :formatter="toPercent"></el-table-column>
</el-table>
<div class="paginationClass">
  <el-pagination
  @size-change="handleSizeChange1"
  @current-change="handleCurrentChange1" :current-page="currentPage1"
  :page-sizes="[10, 20, 50, 100]"
  :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
  :total="total1">
  </el-pagination>

</div>

数据部分:获取测试的数据(19个)

data() {
  return {
     total1: 0,
     currentPage1:1,
     pageSize:10,
     bondsAllList: [{
      "name": "16协信01",
      "marketValue": 691861.0999317318,
      "type": "信用债",
      "ratio": 0.0027959958264152343
    }, {
      "name": "16朗诗01",
      "marketValue": 690131.4471819025,
      "type": "信用债",
      "ratio": 0.002789005836849196
    }, {
      "name": "16三盛01",
      "marketValue": 688816.9110920322,
      "type": "信用债",
      "ratio": 0.0027836934447790073
    }, {
      "name": "17三鼎01",
      "marketValue": 685426.7917023668,
      "type": "信用债",
      "ratio": 0.002769993065229573
    }, {
      "name": "16临开债",
      "marketValue": 676640.4401650192,
      "type": "信用债",
      "ratio": 0.00273448506769905
    }, {
      "name": "16华讯01",
      "marketValue": 614990.17198298,
      "type": "信用债",
      "ratio": 0.0024853398381849607
    }, {
      "name": "16花样03",
      "marketValue": 614990.0028613778,
      "type": "信用债",
      "ratio": 0.0024853391547193142
    }, {
      "name": "15协信01",
      "marketValue": 614987.6443837617,
      "type": "信用债",
      "ratio": 0.0024853296234802085
    }, {
      "name": "16三盛03",
      "marketValue": 461240.73328782123,
      "type": "信用债",
      "ratio": 0.0018639972176101563
    }, {
      "name": "16山钢03",
      "marketValue": 384367.27773985104,
      "type": "信用债",
      "ratio": 0.0015533310146751303
    }, {
      "name": "14甘公01",
      "marketValue": 324002.01240352966,
      "type": "信用债",
      "ratio": 0.0013093788254893862
    }, {
      "name": "15新湖债",
      "marketValue": 307493.82219188084,
      "type": "信用债",
      "ratio": 0.0012426648117401043
    }, {
      "name": "16珠管01",
      "marketValue": 303035.16177009855,
      "type": "信用债",
      "ratio": 0.0012246461719698726
    }, {
      "name": "16重机债",
      "marketValue": 299103.36126325984,
      "type": "信用债",
      "ratio": 0.0012087567140880767
    }, {
      "name": "17三鼎01",
      "marketValue": 8163.960979194436,
      "type": "信用债",
      "ratio": 3.2992750751699765E-5
    }, {
      "name": "16重机债",
      "marketValue": 1475.2323613477674,
      "type": "信用债",
      "ratio": 5.961808700804324E-6
    }, {
      "name": "14甘公01",
      "marketValue": 723.1485963397557,
      "type": "信用债",
      "ratio": 2.92243697100979E-6
    }, {
      "name": "15新湖债",
      "marketValue": 707.2357910413259,
      "type": "信用债",
      "ratio": 2.85812906700224E-6
    }, {
      "name": "16珠管01",
      "marketValue": 153.74691109594042,
      "type": "信用债",
      "ratio": 6.213324058700521E-7
    }]
  }
}

methiods部分:

 methods:{
  handleSizeChange1: function(pageSize) { // 每页条数切换
    this.pageSize = pageSize
    this.handleCurrentChange1(this.currentPage1);
  },
  handleCurrentChange1: function(currentPage) {//页码切换
    this.currentPage1 = currentPage
    this.currentChangePage(this.bondsAllList,currentPage)

  },
  //分页方法(重点)
  currentChangePage(list,currentPage) {
   let from = (currentPage - 1) * this.pageSize;
   let to = currentPage * this.pageSize;
   this.tempList = [];
   for (; from < to; from++) {
    if (list[from]) {
     this.tempList.push(list[from]);
    }
   }
  },
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • vue + element-ui的分页问题实现

    背景介绍 最近比较空闲,公司的后台就想着把现在的后台管理系统给改版一下,说是以前的太难看了,用着也不好用,然后给我甩过来一个ant-design-pro的链接,说是他看这个就挺不错的. 我当时心里就想着,之前的那个项目混合在你们的java项目里,跟普通的jsp页面差不多,一下就是一大堆的css和js文件,看着我都害怕(好吧,我承认其实我都不敢看),这能加载的快了就奇了怪了.ant-design最初是为react设计的,ant-design-pro自然也是用react了,不得不说人家这个界面看着确

  • vue 基于element-ui 分页组件封装的实例代码

    具体代码如下所示: <template> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="total, sizes, prev, pager, next, j

  • 利用vue和element-ui设置表格内容分页的实例

    html代码 因为我写在template中,也就是新建了组建中,贴出代码. <el-pagination small layout="prev, pager, next" :total="total" @current-change="current_change"> </el-pagination> 代码中,small代表是否使用小型分页样式 layout代表组件布局,子组件名用逗号分隔 属性: total代表总条目数

  • vue+Element-ui实现分页效果实例代码详解

    当我们向后台请求大量数据的时候,并要在页面展示出来,请求的数据可能上百条数据或者更多的时候,并不想在一个页面展示,这就需要使用分页功能来去完成了. 1.本次所使用的是vue2.0+element-ui实现一个分页功能,element-ui这个组件特别丰富,分页中给我提供了一个Pagination 分页,使用Pagination 快速完成分页功能 最终效果展示 <div class="deit"> <div class="crumbs"> &l

  • Vue+element-ui 实现表格的分页功能示例

    本文介绍了Vue+element-ui 实现表格的分页功能示例,分享给大家,具体如下: 实现效果如下图所示: template部分: <el-table :data="tempList" :header-cell-style="rowClass" stripe border style="margin-bottom:14px;" :empty-text="emptyText"> <el-table-colum

  • Vue ELement Table技巧表格业务需求实战示例

    目录 前言 常见业务 需求:合并行 思路分析 需求合并列 思路分析 前言 在我们日常开发中,表格业务基本是必不可少的,对于老手来说确实简单,家常便饭罢了,但是对于新手小白如何最快上手搞定需求呢?本文从思路开始着手,帮你快速搞定表格. 常见业务 需求:合并行 1. 合并条码一样的两行 2. 触摸高亮关闭,表格颜色重一点 思路分析 调取element Table的回调 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row.当前列column.当

  • Vue+Element UI 实现视频上传功能

    一.前言 项目中需要提供一个视频介绍,使用户能够快速.方便的了解如何使用产品以及注意事项. 前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传API并返回URL. 二.具体实现 1.效果图展示 2.HTML代码 <div class="album albumvideo"> <div> <p class="type_title"> <span>视频介绍</spa

  • Vue+Element UI+Lumen实现通用表格分页功能

    前言 最近在做一个前后端分离的项目,前端使用 Vue+ Element UI,而后端则使用 Lumen 做接口开发,其中分页是必不可少的一部分,本文就介绍如何基于以上环境做一个简单.可复用的分页功能. 先说后端 后端做的事情不多,只需要接受几个参数,根据参数来获取数据即可. 需要获取的参数如下: pageSize(一页数据的数量) pageIndex(第几页的数据) 然后就可以根据这两个参数计算出偏移量,再从数据库中取出相应的数据. 假如现在给出的参数为:pageSize=10,pageInde

  • Vue + Element UI 实现权限管理系统之菜单功能实现代码

    目录 菜单功能实现 菜单接口封装 菜单管理界面 测试效果 源码下载 菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作. 提供一个菜单查询接口,查询整颗菜单树形结构. http/modules/menu.js 添加findMenuTree 接口. import axios from '../axios' /* * 菜单管理模块 */ // 保存 export const save = (data) => { return axios({ url: '/menu/save', m

  • vue+element UI实现树形表格

    本文实例为大家分享了vue+element UI实现树形表格的具体代码,供大家参考,具体内容如下 一.在component文件夹下新建如下treeTable文件夹,里面有2个文件: eval.js:将数据转换成树形数据 /** * @Author: jianglei * @Date: 2017-10-12 12:06:49 */ 'use strict' import Vue from 'vue' export default function treeToArray(data, expandA

  • vue + element ui实现播放器功能的实例代码

    没有效果图的展示都是空口无凭 1.基于audio并结合elementUI 的进度条实现 2.实现了播放器基本的功能,播放/暂停.快进.静音.调节声音大小.下载等功能 html代码,关键部分已加注释 <div class="right di main-wrap" v-loading="audio.waiting"> <!-- 此处的ref属性,可以很方便的在vue组件中通过 this.$refs.audio获取该dom元素 --> <au

  • 使用vue+element ui实现走马灯切换预览表格数据

    目录 1. 需求分析 2. 效果演示 3. 代码实现 3.1 table.json 3.2 HTML 代码 3.3 Script 代码 总结 1. 需求分析 有这样一个 json 文件(table.json),里面包含有多组需要展示的表格数据,需求就是需要将这些数据进行展示,并且能快速查看不同的数据,由于数据过多,不能一个表格一个表格的进行展示,所以找了一个比较合适的方法,就是通过走马灯将所有数据进行渲染,当切换走马灯时,再展示对应的数据. 2. 效果演示 3. 代码实现 3.1 table.j

  • Vue+Element ui 根据后台返回数据设置动态表头操作

    由于后端是多人开发,也没有规范数据格式,所有页面是我一个人开发,所以就会遇到同样的页面不同的返回数据格式问题. 一.根据element文档,利用prop属性绑定对应值,label绑定表头. html <el-table class="tb-edit" highlight-current-row :data="tableData" border style="width: 100%"> <template v-for="

随机推荐