UNPKG

@sanonz/vue-paginator

Version:
1 lines 3.33 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Paginator=e()}(this,function(){"use strict";var t,e,n,a,i,r={props:{page:{type:Number,required:!0},size:{type:Number,default:20},total:{type:Number,required:!0},range:{type:Number,default:2},prevText:{type:[String,Number],default:"上一页"},nextText:{type:[String,Number],default:"下一页"}},data:function(){return{}},computed:{count:function(){return Math.ceil(this.total/this.size)},left:function(){return this.page-this.range},right:function(){return this.page+this.range},loop:function(){var t=Math.min(this.right,this.count)-this.left+1;return t<0?0:t}},methods:{onChange:function(t){this.router(t),this.$emit("change",t)},router:function(t){var e=[this.$route.path,this.paramsSerializer(function(i){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,a;e=i,a=r[n=t],n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a})}return i}({},this.$route.query,{page:t}))];this.$router.replace(e.join("?"))},paramsSerializer:function(t){var e=[];for(var n in t)e.push(n+"="+encodeURIComponent(t[n]));return e.join("&")}}},o=function(){var n=this,t=n.$createElement,a=n._self._c||t;return n.total||1<n.count?a("ul",{staticClass:"paginator"},[a("li",{staticClass:"paginator-item"},[1!==n.page?a("a",{staticClass:"paginator-row",on:{click:function(t){n.onChange(n.page-1)}}},[n._v(n._s(n.prevText))]):a("span",{staticClass:"paginator-row"},[n._v(n._s(n.prevText))])]),n._v(" "),n.page>n.range+1?[a("li",{staticClass:"paginator-item"},[a("a",{staticClass:"paginator-row",on:{click:function(t){n.onChange(1)}}},[n._v("1")])]),n._v(" "),n._m(0)]:n._e(),n._v(" "),n._l(n.loop,function(e){return 0<e+n.left-1?a("li",{key:e,class:(t={},t["paginator-item"]=!0,t["paginator-active"]=e+n.left-1===n.page,t)},[a("a",{staticClass:"paginator-row",on:{click:function(t){n.onChange(e+n.left-1)}}},[n._v(n._s(e+n.left-1))])]):n._e();var t}),n._v(" "),n.right<n.count?[n._m(1),n._v(" "),a("li",{staticClass:"paginator-item"},[a("a",{staticClass:"paginator-row",on:{click:function(t){n.onChange(n.count)}}},[n._v(n._s(n.count))])])]:n._e(),n._v(" "),a("li",{staticClass:"paginator-item"},[n.page!==n.count?a("a",{staticClass:"paginator-row",on:{click:function(t){n.onChange(n.page+1)}}},[n._v(n._s(n.nextText))]):a("span",{staticClass:"paginator-row"},[n._v(n._s(n.nextText))])])],2):n._e()};o._withStripped=!0;return n=void 0,a=!(t={render:o,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("li",{staticClass:"paginator-item"},[e("span",{staticClass:"paginator-row"},[this._v("...")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",{staticClass:"paginator-item"},[e("span",{staticClass:"paginator-row"},[this._v("...")])])}]}),(i=("function"==typeof(e=r)?e.options:e)||{}).__file="E:\\MyProjects\\htdocs\\demo\\vue-paginate\\src\\Paginator.vue",i.render||(i.render=t.render,i.staticRenderFns=t.staticRenderFns,i._compiled=!0,a&&(i.functional=!0)),i._scopeId=n,i});