vue纯前端分页_基于vue的表格组件

vue纯前端分页_基于vue的表格组件vue分页组件(比上一版本好看一些),贴代码vue-page.js代码如下varvuePage={ template:’<divclass="page-bar"id="pager">\ <spanclass="form-inline">\ <selectclass="form-control"v-model=&a

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

之前写了一篇,是简单分页,地址如下

点击打开链接

https://blog.csdn.net/qq_33212500/article/details/80422148

vue 分页组件(比上一版本好看一些),贴代码

vue-page.js

代码如下

var vuePage = {
	template:'<div class="page-bar" id="pager">\
	    <span class="form-inline">\
	        <select class="form-control" v-model="pagesize" number>\
	            <option v-for="item in pagerData.page.arrPageSize" :value="item">{
  
  {item}}</option>\
	        </select>\
	    </span>\
	    <span class="btn btn-default" v-on:click="btnClick(1)">首页</span>\
	    <span class="btn btn-default" v-on:click="btnClick(Number(pageCurrent)-1)">上一页</span>\
		<span class="form-inline">第\
	    <input class="form-control" style="width:60px;text-align:center" v-model="pageCurrent" type="text" v-on:click="getMypageCurrent" v-on:blur="yzPage" v-on:keyup.enter="yzPage();btnClick(pageCurrent)" />\
		页</span>\
		<span>,共{
  
  {pagerData.page.pages}}页</span>\
	    <span class="btn btn-default" v-on:click="btnClick(Number(pageCurrent)+1)">下一页</span>\
	    <span class="btn btn-default" v-on:click="btnClick(pagerData.page.pages)">尾页</span>\
		<span>共{
  
  {pagerData.page.total}}条数据</span>\
	</div>',
	data:function(){
		return{
			mypagesize:10,
			mypageCurrent:1,//当前页
			sortparam:"",
			sorttype:1
		}
	},
	props: {
		pagerData:{
			default:function(){
				return{
					page:{
						//分页大小
						//pageSize:10,
						//分页数
						//arrPageSize:[10,20,30,40],
						//当前页面
						//pageNum:1,
						//总分页数
						//pages:0,
						//记录总数
						//total:0
					}
				}
			}
			
		},
		callback: {
	        default: function() {
	             return function callback() {
	                 // todo
	             }
	         }
	     }
	},
	methods:{
		 btnClick:function(page) {
			 if(page<=0){
				 page = 1;
			 }else if(page>this.pagerData.page.pages){
				 page = this.pagerData.page.pages;
			 }
			 this.pagerData.page.pageNum = page;
             if (page != this.pagenum) {
                 this.callback(page)
             }
         },
         yzPage:function(){
        	 if(/^[1-9]\d*$/.test(this.pageCurrent)==false){
        		 this.pageCurrent =this.mypageCurrent;
        		 //this.pagerData.page.pageNum = this.mypageCurrent;
        	 }else{
        		 if((Number(this.pageCurrent)<=0)||(Number(this.pageCurrent)>this.pagerData.page.pages)){
        			 this.pageCurrent =this.mypageCurrent;
        			 //this.pagerData.page.pageNum = this.mypageCurrent;
        		 }
        	 }
        	
         },
         getMypageCurrent:function(){
        	this.mypageCurrent = this.pageCurrent;
         }
	},
	computed:{
		// 分页大小 获取的时候显示父级传入的,修改的时候修改自身的。子组件不能修改父元素的值
		pagesize:{
			get:function(){
				return this.pagerData.page.pageSize;
			},
			set:function(value){
				this.pagerData.page.pageSize = value;
				this.pagerData.page.pageNum = 1;
				this.callback(1)
			}
		},
		pageCurrent:{
			get:function(){
				return this.pagerData.page.pageNum;
			},
			set:function(value){
				this.pagerData.page.pageNum = value;
			}
		}
	}
}

table表单下的代码如下,该代码复制到table标签下即可

<vue-page  v-bind:pager-data="pagerData" :callback="callback"></vue-page>

js代码如下

var vue = new Vue({
        el:"#app",
        data:{
            rsList:[],
            pagerData:{
                page:{
                    //分页大小
                    pageSize:10,
                    //分页数
                    arrPageSize:[10,20,30,40,50],
                    //当前页面
                    pageNum:1,
                    //总分页数
                    pages:0,
                    //记录总数
                    total:0
                }
            }
        },
        created: function () {
            this.callback(1);
        },
        components:{
            'vue-page': vuePage
        },
        methods:{

            callback: function(page){
                this.pagerData.page.pageNum = page;
                this.globalCurPage = page;
                var params = {};
                params.pageNum = page;
                params.pageSize = this.pagerData.page.pageSize;;
                params.receiveStatus = this.receiveStatus;
                sysUserController.getMessageList(params,function (data) {
                    if(data.status==200){
                        var resultObject = data.resultObject;
                        vue.rsList = resultObject.list;
                        vue.pagerData.page.pages = resultObject.pages;
                        vue.pagerData.page.total = resultObject.total;
                    }
                });
            }
        }
    });

需引入

bootstrap.min.css

样式完成!

页面效果如下

vue纯前端分页_基于vue的表格组件

======================================

源码地址:https://download.csdn.net/download/qq_33212500/10433011

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187229.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RK平台 USB转RS485

    RK平台 USB转RS485文章目录RS232/RS485简介RS232RS485R485与RS232比较开发DTS配置驱动开发POSIX规范APIHAL层以上APP层APKcallJNIAPP调试log开启RS232/RS485/RS422常见问题RS232/RS485简介RS232RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232…

    2022年5月2日
    40
  • DEDECMS中的几个常见的自定义常量DEDEMEMBER等位置

    DEDECMS中的几个常见的自定义常量DEDEMEMBER等位置

    2021年9月25日
    47
  • Confluence 6 配置 XSRF 保护[通俗易懂]

    Confluence 6 配置 XSRF 保护[通俗易懂]Confluence需要一个XSRF令牌才能创建一个评论,这个被用来保护用户不在评论区恶意发布内容。所有Confluence自定义的主题都被启用了这个功能,但是如果你使用自定义主题的话,可能这些主题不支持这些安全特性,你可以禁用这个功能。 在禁用XSRF之前,请仔细考虑可能在你Confluence安装实例中可能会遇到的安全问题。请参考 cgisecurity.com 中…

    2022年5月16日
    43
  • MyEclipse10激活成功教程_Myeclipse

    MyEclipse10激活成功教程_Myeclipse一.Myeclipse10下载与激活成功教程Genuitec公司发布了MyEclipse10,一款Genuitec旗下的商业化Eclipse集成开发工具的升级版本。MyEclipse10基于EclipseIndigo构建,为Java和JavaEE项目提供了Maven3的支持。本次发布的版本中还加入了对JaveEE6、HTML5、JPA2和JSF2的支持。版本号10是为了庆祝即

    2022年9月26日
    3
  • 开源视频会议BigBlueButton 0.81二次开发API

    开源视频会议BigBlueButton 0.81二次开发API开源视频会议BigBlueButton0.81二次开发API本文是copy一位博友的,为了不丢失这篇文章,谢谢。BigBlueButton是一个视频会议软件,它的演示环境和开发环境的搭建,网上都有很多的资料,为了便于二次开发,我整理了一下BBB的常用功能API接口,供参考:BigblueButton调用API,只需一个HTTP请求一个URL,查询参数提供呼叫所需要的信

    2022年7月14日
    29
  • vue跨域解决方案反向代理_怎么解决跨域问题

    vue跨域解决方案反向代理_怎么解决跨域问题文章目录前言一、跨域是什么?二、解决跨域的办法前言跨域错误信息AccesstoXMLHttpRequestat‘http://192.168.2.92:3000/api/b/home’fromorigin‘http://localhost:8080’hasbeenblockedbyCORSpolicy:Responsetopreflightrequestdoesn’tpassaccesscontrolcheck:ItdoesnothaveHTTP

    2022年10月1日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号