vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 9.28 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}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=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}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}},transfer:{type:Boolean,default:function(){return _conf.default.pager.transfer}},className:[String,Function],iconPrevPage:String,iconJumpPrev:String,iconJumpNext:String,iconNextPage:String,iconJumpMore:String},inject:{$xegrid:{default:null}},data:function(){return{inpCurrPage:this.currentPage}},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 _xeUtils.default.isNumber(e)?{value:e,label:"".concat(_conf.default.i18n("vxe.pager.pagesize",[e]))}:_objectSpread({value:"",label:""},e)})}},watch:{currentPage:function(e){this.inpCurrPage=e}},render:function(t){var n=this,e=this.$scopedSlots,r=this.$xegrid,i=this.vSize,a=this.align,u=this.className,o=[];return e.left&&o.push(t("span",{class:"vxe-pager--left-wrapper"},e.left.call(this,{$grid:r}))),this.layouts.forEach(function(e){o.push(n["render".concat(e)](t))}),e.right&&o.push(t("span",{class:"vxe-pager--right-wrapper"},e.right.call(this,{$grid:r}))),t("div",{class:["vxe-pager",u?_xeUtils.default.isFunction(u)?u({$pager:this}):u:"",(_defineProperty(e={},"size--".concat(i),i),_defineProperty(e,"align--".concat(a),a),_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("button",{class:["vxe-pager--prev-btn",{"is--disabled":this.currentPage<=1}],attrs:{type:"button",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||"button",{class:["vxe-pager--jump-prev",{"is--fixed":!t,"is--disabled":this.currentPage<=1}],attrs:{type:"button",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("span",{class:"vxe-pager--btn-wrapper"},this.renderPageBtn(e))},renderJumpNumber:function(e){return e("span",{class:"vxe-pager--btn-wrapper"},this.renderPageBtn(e,!0))},renderNextJump:function(e,t){return e(t||"button",{class:["vxe-pager--jump-next",{"is--fixed":!t,"is--disabled":this.currentPage>=this.pageCount}],attrs:{type:"button",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("button",{class:["vxe-pager--next-btn",{"is--disabled":this.currentPage>=this.pageCount}],attrs:{type:"button",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 t=this;return e("vxe-select",{class:"vxe-pager--sizes",props:{value:this.pageSize,placement:"top",transfer:this.transfer,options:this.sizeList},on:{change:function(e){e=e.value;t.pageSizeEvent(e)}}})},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.inpCurrPage},attrs:{type:"text",autocomplete:"off"},on:{input:this.jumpInputEvent,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 i=this,t=this.numList,a=this.currentPage,u=this.pageCount,n=this.pagerCount,o=this.offsetNumber,s=[],n=n<u,p=n&&o+1<a,c=n&&a<u-o,l=1;return n&&(l=u-o<=a?Math.max(u-t.length+1,1):Math.max(a-o,1)),e&&p&&s.push(r("button",{class:"vxe-pager--num-btn",attrs:{type:"button"},on:{click:function(){return i.jumpPage(1)}}},1),this.renderPrevJump(r,"span")),t.forEach(function(e,t){var n=l+t;n<=u&&s.push(r("button",{class:["vxe-pager--num-btn",{"is--active":a===n}],attrs:{type:"button"},on:{click:function(){return i.jumpPage(n)}},key:n},n))}),e&&c&&s.push(this.renderNextJump(r,"button"),r("button",{class:"vxe-pager--num-btn",attrs:{type:"button"},on:{click:function(){return i.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){var t=this.getPageCount(this.total,e),n=this.currentPage;t<n&&this.$emit("update:currentPage",n=t),this.$emit("update:pageSize",e),this.$emit("page-change",{type:"size",pageSize:e,currentPage:n})},jumpInputEvent:function(e){this.inpCurrPage=e.target.value},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=_xeUtils.default.toInteger(e.target.value),t=t<=0?1:t>=this.pageCount?this.pageCount:t,n=_xeUtils.default.toValueString(t);e.target.value=n,this.inpCurrPage=n,this.jumpPage(t)}}};exports.default=_default2;