UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 8.07 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_size=_interopRequireDefault(require("../../mixins/size"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(n),!0).forEach(function(e){_defineProperty(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var _default2={name:"VxePager",mixins:[_size.default],props:{size:{type:String,default:function(){return _conf.default.pager.size||_conf.default.size}},layouts:{type:Array,default:function(){return _conf.default.pager.layouts||["PrevJump","PrevPage","Jump","PageCount","NextPage","NextJump","Sizes","Total"]}},currentPage:{type:Number,default:1},loading:Boolean,pageSize:{type:Number,default:function(){return _conf.default.pager.pageSize||10}},total:{type:Number,default:0},pagerCount:{type:Number,default:function(){return _conf.default.pager.pagerCount||7}},pageSizes:{type:Array,default:function(){return _conf.default.pager.pageSizes||[10,15,20,50,100]}},align:{type:String,default:function(){return _conf.default.pager.align}},border:{type:Boolean,default:function(){return _conf.default.pager.border}},background:{type:Boolean,default:function(){return _conf.default.pager.background}},perfect:{type:Boolean,default:function(){return _conf.default.pager.perfect}},autoHidden:{type:Boolean,default:function(){return _conf.default.pager.autoHidden}},iconPrevPage:String,iconJumpPrev:String,iconJumpNext:String,iconNextPage:String,iconJumpMore:String},inject:{$xegrid:{default:null}},computed:{isSizes:function(){return this.layouts.some(function(e){return"Sizes"===e})},pageCount:function(){return this.getPageCount(this.total,this.pageSize)},numList:function(){for(var e=this.pageCount>this.pagerCount?this.pagerCount-2:this.pagerCount,t=[],n=0;n<e;n++)t.push(n);return t},offsetNumber:function(){return Math.floor((this.pagerCount-2)/2)},sizeList:function(){return this.pageSizes.map(function(e){return _ctor.default.isNumber(e)?{value:e,label:"".concat(_conf.default.i18n("vxe.pager.pagesize",[e]))}:_objectSpread({value:"",label:""},e)})}},render:function(t){var e,n=this,r=this.$scopedSlots,a=this.$xegrid,i=this.vSize,u=this.align,o=[];return r.left&&o.push(t("span",{class:"vxe-pager--left-wrapper"},r.left.call(this,{$grid:a}))),this.layouts.forEach(function(e){o.push(n["render".concat(e)](t))}),r.right&&o.push(t("span",{class:"vxe-pager--right-wrapper"},r.right.call(this,{$grid:a}))),t("div",{class:["vxe-pager",(e={},_defineProperty(e,"size--".concat(i),i),_defineProperty(e,"align--".concat(u),u),_defineProperty(e,"is--border",this.border),_defineProperty(e,"is--background",this.background),_defineProperty(e,"is--perfect",this.perfect),_defineProperty(e,"is--hidden",this.autoHidden&&1===this.pageCount),_defineProperty(e,"is--loading",this.loading),e)]},[t("div",{class:"vxe-pager--wrapper"},o)])},methods:{renderPrevPage:function(e){return e("span",{class:["vxe-pager--prev-btn",{"is--disabled":this.currentPage<=1}],attrs:{title:_conf.default.i18n("vxe.pager.prevPage")},on:{click:this.prevPage}},[e("i",{class:["vxe-pager--btn-icon",this.iconPrevPage||_conf.default.icon.PAGER_PREV_PAGE]})])},renderPrevJump:function(e,t){return e(t||"span",{class:["vxe-pager--jump-prev",{"is--fixed":!t,"is--disabled":this.currentPage<=1}],attrs:{title:_conf.default.i18n("vxe.pager.prevJump")},on:{click:this.prevJump}},[t?e("i",{class:["vxe-pager--jump-more-icon",this.iconJumpMore||_conf.default.icon.PAGER_JUMP_MORE]}):null,e("i",{class:["vxe-pager--jump-icon",this.iconJumpPrev||_conf.default.icon.PAGER_JUMP_PREV]})])},renderNumber:function(e){return e("ul",{class:"vxe-pager--btn-wrapper"},this.renderPageBtn(e))},renderJumpNumber:function(e){return e("ul",{class:"vxe-pager--btn-wrapper"},this.renderPageBtn(e,!0))},renderNextJump:function(e,t){return e(t||"span",{class:["vxe-pager--jump-next",{"is--fixed":!t,"is--disabled":this.currentPage>=this.pageCount}],attrs:{title:_conf.default.i18n("vxe.pager.nextJump")},on:{click:this.nextJump}},[t?e("i",{class:["vxe-pager--jump-more-icon",this.iconJumpMore||_conf.default.icon.PAGER_JUMP_MORE]}):null,e("i",{class:["vxe-pager--jump-icon",this.iconJumpNext||_conf.default.icon.PAGER_JUMP_NEXT]})])},renderNextPage:function(e){return e("span",{class:["vxe-pager--next-btn",{"is--disabled":this.currentPage>=this.pageCount}],attrs:{title:_conf.default.i18n("vxe.pager.nextPage")},on:{click:this.nextPage}},[e("i",{class:["vxe-pager--btn-icon",this.iconNextPage||_conf.default.icon.PAGER_NEXT_PAGE]})])},renderSizes:function(e){var n=this;return e("vxe-select",{class:"vxe-pager--sizes",props:{value:this.pageSize,placement:"top",options:this.sizeList},on:{change:function(e){var t=e.value;n.pageSizeEvent(t)}}})},renderFullJump:function(e){return this.renderJump(e,!0)},renderJump:function(e,t){return e("span",{class:"vxe-pager--jump"},[t?e("span",{class:"vxe-pager--goto-text"},_conf.default.i18n("vxe.pager.goto")):null,e("input",{class:"vxe-pager--goto",domProps:{value:this.currentPage},attrs:{type:"text",autocomplete:"off"},on:{keydown:this.jumpKeydownEvent,blur:this.triggerJumpEvent}}),t?e("span",{class:"vxe-pager--classifier-text"},_conf.default.i18n("vxe.pager.pageClassifier")):null])},renderPageCount:function(e){return e("span",{class:"vxe-pager--count"},[e("span",{class:"vxe-pager--separator"}),e("span",this.pageCount)])},renderTotal:function(e){return e("span",{class:"vxe-pager--total"},_conf.default.i18n("vxe.pager.total",[this.total]))},renderPageBtn:function(r,e){var a=this,t=this.numList,i=this.currentPage,u=this.pageCount,n=this.pagerCount,o=this.offsetNumber,s=[],p=n<u,c=p&&o+1<i,g=p&&i<u-o,l=1;return p&&(l=u-o<=i?Math.max(u-t.length+1,1):Math.max(i-o,1)),e&&c&&s.push(r("li",{class:"vxe-pager--num-btn",on:{click:function(){return a.jumpPage(1)}}},1),this.renderPrevJump(r,"li")),t.forEach(function(e,t){var n=l+t;n<=u&&s.push(r("li",{class:["vxe-pager--num-btn",{"is--active":i===n}],on:{click:function(){return a.jumpPage(n)}},key:n},n))}),e&&g&&s.push(this.renderNextJump(r,"li"),r("li",{class:"vxe-pager--num-btn",on:{click:function(){return a.jumpPage(u)}}},u)),s},getPageCount:function(e,t){return Math.max(Math.ceil(e/t),1)},prevPage:function(){var e=this.currentPage,t=this.pageCount;1<e&&this.jumpPage(Math.min(t,Math.max(e-1,1)))},nextPage:function(){var e=this.currentPage,t=this.pageCount;e<t&&this.jumpPage(Math.min(t,e+1))},prevJump:function(){this.jumpPage(Math.max(this.currentPage-this.numList.length,1))},nextJump:function(){this.jumpPage(Math.min(this.currentPage+this.numList.length,this.pageCount))},jumpPage:function(e){e!==this.currentPage&&(this.$emit("update:currentPage",e),this.$emit("page-change",{type:"current",pageSize:this.pageSize,currentPage:e}))},pageSizeEvent:function(e){this.changePageSize(e)},changePageSize:function(e){e!==this.pageSize&&(this.$emit("update:pageSize",e),this.$emit("page-change",{type:"size",pageSize:e,currentPage:Math.min(this.currentPage,this.getPageCount(this.total,e))}))},jumpKeydownEvent:function(e){13===e.keyCode?this.triggerJumpEvent(e):38===e.keyCode?(e.preventDefault(),this.nextPage()):40===e.keyCode&&(e.preventDefault(),this.prevPage())},triggerJumpEvent:function(e){var t=_ctor.default.toNumber(e.target.value),n=t<=0?1:t>=this.pageCount?this.pageCount:t;e.target.value=n,this.jumpPage(n)}}};exports.default=_default2;