vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 5.72 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_utils=_interopRequireDefault(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom"));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 _defineProperty(e,t,o){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,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 o=e[Symbol.toPrimitive];if(void 0===o)return("string"===t?String:Number)(e);o=o.call(e,t||"default");if("object"!==_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}var cellType="footer";function mergeFooterMethod(e,t,o){for(var l=0;l<e.length;l++){var r=e[l],n=r.row,i=r.col,a=r.rowspan,r=r.colspan;if(-1<i&&-1<n&&a&&r){if(n===t&&i===o)return{rowspan:a,colspan:r};if(n<=t&&t<n+a&&i<=o&&o<i+r)return{rowspan:0,colspan:0}}}}var _default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted:function(){var e=this.$parent,t=this.$el,o=this.$refs,l=this.fixedType,e=e.elemStore,l="".concat(l||"main","-footer-");e["".concat(l,"wrapper")]=t,e["".concat(l,"table")]=o.table,e["".concat(l,"colgroup")]=o.colgroup,e["".concat(l,"list")]=o.tfoot,e["".concat(l,"xSpace")]=o.xSpace},destroyed:function(){var e=this.$parent,t=this.fixedType,e=e.elemStore,t="".concat(t||"main","-footer-");e["".concat(t,"wrapper")]=null,e["".concat(t,"table")]=null,e["".concat(t,"colgroup")]=null,e["".concat(t,"list")]=null,e["".concat(t,"xSpace")]=null},render:function(g){var e=this._e,_=this.$parent,h=this.fixedType,t=this.fixedColumn,w=this.tableColumn,T=this.footerTableData,S=_.$listeners,o=_.tId,l=_.footerRowClassName,$=_.footerCellClassName,r=_.footerRowStyle,C=_.footerCellStyle,P=_.footerAlign,I=_.mergeFooterList,F=_.footerSpanMethod,L=_.align,E=_.scrollXLoad,k=_.columnKey,O=_.columnOpts,q=_.showFooterOverflow,D=_.currentColumn,U=_.overflowX,n=_.scrollbarWidth,j=_.tooltipOpts,i=_.visibleColumn,a=_.expandColumn;return h&&(w=a||!E&&!q||I.length&&F?i:t),g("div",{class:["vxe-table--footer-wrapper",h?"fixed-".concat(h,"--wrapper"):"body--wrapper"],attrs:{xid:o},on:{scroll:this.scrollEvent}},[h?e():g("div",{class:"vxe-body--x-space",ref:"xSpace"}),g("table",{class:"vxe-table--footer",attrs:{xid:o,cellspacing:0,cellpadding:0,border:0},ref:"table"},[g("colgroup",{ref:"colgroup"},w.map(function(e,t){return g("col",{attrs:{name:e.id},key:t})}).concat(n?[g("col",{attrs:{name:"col_gutter"}})]:[])),g("tfoot",{ref:"tfoot"},T.map(function(x,v){var b=v;return g("tr",{class:["vxe-footer--row",l?_xeUtils.default.isFunction(l)?l({$table:_,_rowIndex:v,$rowIndex:b,fixed:h,type:cellType}):l:""],style:r?_xeUtils.default.isFunction(r)?r({$table:_,_rowIndex:v,$rowIndex:b,fixed:h,type:cellType}):r:null},w.map(function(t,e){var o=t.type,l=t.showFooterOverflow,r=t.footerAlign,n=t.align,i=t.footerClassName,a=j.showAll||j.enabled,c=t.children&&t.children.length,c=h?t.fixed!==h&&!c:t.fixed&&U,l=_xeUtils.default.isUndefined(l)||_xeUtils.default.isNull(l)?q:l,r=r||n||P||L,n="ellipsis"===l,s="title"===l,u=!0===l||"tooltip"===l,l=s||u||n,f={colid:t.id},d={},p=_.getColumnIndex(t),y=_.getVTColumnIndex(t),m={$table:_,$grid:_.xegrid,_rowIndex:v,$rowIndex:b,column:t,columnIndex:p,$columnIndex:e,_columnIndex:y,itemIndex:y,items:x,fixed:h,type:cellType,data:T};if(E&&!l&&(n=l=!0),(s||u||a)&&(d.mouseenter=function(e){s?_dom.default.updateCellTitle(e.currentTarget,t):(u||a)&&_.triggerFooterTooltipEvent(e,m)}),(u||a)&&(d.mouseleave=function(e){(u||a)&&_.handleTargetLeaveEvent(e)}),S["footer-cell-click"]&&(d.click=function(e){_.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)}),S["footer-cell-dblclick"]&&(d.dblclick=function(e){_.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)}),I.length){var p=mergeFooterMethod(I,v,y);if(p){y=p.rowspan,p=p.colspan;if(!y||!p)return null;1<y&&(f.rowspan=y),1<p&&(f.colspan=p)}}else if(F){y=F(m)||{},p=y.rowspan,p=void 0===p?1:p,y=y.colspan,y=void 0===y?1:y;if(!p||!y)return null;1<p&&(f.rowspan=p),1<y&&(f.colspan=y)}return g("td",{class:["vxe-footer--column",t.id,(_defineProperty(p={},"col--".concat(r),r),_defineProperty(p,"col--".concat(o),o),_defineProperty(p,"col--last",e===w.length-1),_defineProperty(p,"fixed--hidden",c),_defineProperty(p,"col--ellipsis",l),_defineProperty(p,"col--current",D===t),p),_utils.default.getClass(i,m),_utils.default.getClass($,m)],attrs:f,style:C?_xeUtils.default.isFunction(C)?C(m):C:null,on:d,key:k||O.useKey?t.id:e},[g("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":u,"c--ellipsis":n}]},t.renderFooter(g,m))])}).concat(n?[g("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])},methods:{scrollEvent:function(e){var t=this.$parent,o=this.fixedType,l=t.$refs,r=t.scrollXLoad,n=t.triggerScrollXEvent,i=t.lastScrollLeft,a=l.tableHeader,c=l.tableBody,s=l.tableFooter,l=l.validTip,a=a?a.$el:null,s=s?s.$el:null,c=c.$el,s=s?s.scrollLeft:0,i=s!==i;t.lastScrollLeft=s,t.lastScrollTime=Date.now(),a&&(a.scrollLeft=s),c&&(c.scrollLeft=s),r&&i&&n(e),i&&l&&l.visible&&l.updatePlacement(),t.emitEvent("scroll",{type:cellType,fixed:o,scrollTop:c.scrollTop,scrollLeft:s,isX:i,isY:!1},e)}}};exports.default=_default;