Vue+Element-U实现分页显示效果


Posted in Javascript onNovember 15, 2020

本文实例为大家分享了Vue+Element-U实现分页显示效果的具体代码,供大家参考,具体内容如下

当我们从后端返回的数据量很大,并且根据需求我们需要将返回的数据全部都显示在页面中,默认情况下会把所有的数据全部显示在一个页面,这样非常影响视觉和页面的使用,所以需要使用分页
我这次使用的是Vue4.0 +  Element-UI组件,Element-UI库非常的丰富,它提供了一个分页组件 Pagination

展示效果:这个是获取两个时间段的上机记录

Vue+Element-U实现分页显示效果

HTML部分:

<el-card>
 <div class="block">
 <span style="left:-100px; position:relative">
  <span class="demonstration" style='margin-right:10px'>
  开始日期
  </span>
  <el-date-picker v-model="value1" type="datetime"
  placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
  value-format="yyyy-MM-dd hh:mm:ss">
  </el-date-picker>
 </span>
 <span style="left:-70px; position:relative">
  <span class="demonstration" style='margin-right:10px'>
 截止日期</span>
  <el-date-picker v-model="value2" type="datetime"
 placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"
  format="yyyy-MM-dd hh:mm:ss">
  </el-date-picker>
 </span>
 <el-button type="primary" 
style="left:-40px;position:relative" @click="lineCrodList">
 搜索
 </el-button>
 </div>
 <el-table :data="lineData" style="width: 80%;left:60px;top:20px">
 <el-table-column prop="onTime" label="上机时间">
 </el-table-column>
 <el-table-column prop="downTime" label="下机时间">
 </el-table-column>
 <el-table-column prop="spendCash" label="花费时间">
 </el-table-column>
 <el-table-column prop="spendCash" label="花费金额">
 </el-table-column>
 </el-table>
 
 <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
 :page-sizes="[1, 2, 5, 10]" :page-size="pageSize"
 layout="total, sizes, prev, pager, next, jumper"
 :total="total">
 </el-pagination>
 
</el-card>

分页控件的代码如下: 

<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
 :page-sizes="[1, 2, 5, 10]" :page-size="pageSize"
 layout="total, sizes, prev, pager, next, jumper"
 :total="total">
</el-pagination>

解析:

@size-change:这个是一个方法,当在页面改变每页显示的条数时,会触发该方法

Vue+Element-U实现分页显示效果

@current-change:点击当前页改变的时候会触发该方法

Vue+Element-U实现分页显示效果

:current-page:当前页数

:page-sizes:个数选择器的选项设置

Vue+Element-U实现分页显示效果

:page-size:每页显示的条数

:total:总数据数量

JS代码:

<script>
export default {
 data () {
 return {
 value1: '',
 value2: '',
 lineData: [],
 username: '',
 total: 0, //实现动态绑定
 pageSize: 2,
 currentPage: 1,
 
 }
 },
 methods: {
 //当改变每页显示条数的选择器时会触发的事件
 handleSizeChange (size) {
 // 每页显示的数量是我们选择器选中的值size
 this.pageSize = size;
 console.log(this.pageSize);//每页下拉显示数据
 this.lineCrodList();
 },
//当改变当前页数的时候触发的事件
 handleCurrentChange (currentPage) {
 this.currentPage = currentPage;
 console.log(this.currentPage);//点击第几页
 this.lineCrodList();
 },
//获取用户上机记录的信息分页
 async lineCrodList () {
 
 //调用 获取total数据的方法
 this.counttotal();
 await this.$http.post('/Line/SelectInfo', {
 userName: this.username,
 onTime: this.value1,
 downTime: this.value2,
 spendCash: 0,
 start: (this.currentPage-1)* this.pageSize,
 pageSize: this.pageSize
 }).then(res => {
 this.lineData = res.data;
 console.log(res.data)
 })
 },
 //获取用户总条数
 async counttotal () {
 await this.$http.post('/Line/selectTotal', {
 userName: this.username,
 onTime: this.value1,
 downTime: this.value2,
 }).then(res => {
 this.total = res.data;
 })
}

我们前端请求的时候需要给后端发送start 和 pageSize 这两个参数 因为具体的数据是后端通过数据库来搜索的

后台Sql语句,其他层的代码我就不在这里列出

Vue+Element-U实现分页显示效果

可以看到 limit  i,n

i:表示查询结果的索引值

n:为查询结果的返回数量

i 和 n之间用逗号分隔

例子:

#分页显示新闻数据,每页显示两条,这里显示第一页
SELECT id,title,author,createdate FROM news_detail LIMIT 0,2
#分页显示新闻数据,每页显示两条,这里显示第二页
SELECT id,title,author,createdate FROM news_detail LIMIT 2,2
#分页显示新闻数据,每页显示两条,这里显示第三页
SELECT id,title,author,createdate FROM news_detail LIMIT 4,2
#公用的分页sql
#第二个数:分页后每页显示几条新闻(页面容量) pageSize
#第一个数:从第几条数据开始显示(当前页码pageNo-1)*pageSize
SELECT id,title,author,createdate FROM news_detail 
LIMIT (pageNo-1)*pageSize,pageSize

我把(pageNo-1)*pageSize 写到了前端,所以就无需在后端重复写

Vue+Element-U实现分页显示效果

# 查询8条数据,索引从5到12,第6条记录到第13条记录 select * from t_user limit 5,8;

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

Javascript 相关文章推荐
Javascript 类与静态类的实现
Apr 01 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
webpack4.0打包优化策略整理小结
Mar 30 Javascript
详解Vue 如何监听Array的变化
Jun 06 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
vue+Element-ui前端实现分页效果
Nov 15 #Javascript
vue+Element-ui实现分页效果
Nov 15 #Javascript
vue实现抽屉弹窗效果
Nov 15 #Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 #Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 13 #Javascript
vant 解决tab切换插件标题样式自定义的问题
Nov 13 #Javascript
vue 授权获取微信openId操作
Nov 13 #Javascript
You might like
php中inlcude()性能对比详解
2012/09/16 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python的时间模块datetime详解
2017/04/17 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
两只小狮子教学反思
2014/02/05 职场文书
企业文化标语大全
2014/06/10 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
发布会邀请函
2015/01/31 职场文书
员工辞退通知书
2015/04/17 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
创业计划书之家教中心
2019/09/25 职场文书