UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

1 lines 7.58 kB
"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")),_util=require("./util"),_util2=require("../../table/src/util");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 r,l=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),l.push.apply(l,r)),l}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,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 r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!==_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}var cellType="header",_default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,size:String,fixedType:String},data:function(){return{headerColumn:[]}},watch:{tableColumn:function(){this.uploadColumn()}},created:function(){this.uploadColumn()},mounted:function(){var e=this.$parent,t=this.$el,r=this.$refs,l=this.fixedType,e=e.elemStore,l="".concat(l||"main","-header-");e["".concat(l,"wrapper")]=t,e["".concat(l,"table")]=r.table,e["".concat(l,"colgroup")]=r.colgroup,e["".concat(l,"list")]=r.thead,e["".concat(l,"xSpace")]=r.xSpace,e["".concat(l,"repair")]=r.repair},destroyed:function(){var e=this.$parent,t=this.fixedType,e=e.elemStore,t="".concat(t||"main","-header-");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,e["".concat(t,"repair")]=null},render:function(_){var g=this,e=this._e,x=this.$parent,v=this.fixedType,t=this.headerColumn,r=this.tableColumn,l=this.fixedColumn,C=x.$listeners,o=x.tId,n=x.isGroup,i=x.visibleColumn,w=x.resizable,P=x.border,S=x.columnKey,a=x.headerRowClassName,O=x.headerCellClassName,s=x.headerRowStyle,$=x.headerCellStyle,j=x.showHeaderOverflow,z=x.headerAlign,T=x.align,D=x.highlightCurrentColumn,M=x.currentColumn,R=x.scrollXLoad,W=x.overflowX,c=x.scrollbarWidth,k=x.sortOpts,q=x.mouseConfig,E=x.columnOpts;return n?r=i:t=[r=v&&(R||j)?l:r],_("div",{class:["vxe-table--header-wrapper",v?"fixed-".concat(v,"--wrapper"):"body--wrapper"],attrs:{xid:o}},[v?e():_("div",{class:"vxe-body--x-space",ref:"xSpace"}),_("table",{class:"vxe-table--header",attrs:{xid:o,cellspacing:0,cellpadding:0,border:0},ref:"table"},[_("colgroup",{ref:"colgroup"},r.map(function(e,t){return _("col",{attrs:{name:e.id},key:t})}).concat(c?[_("col",{attrs:{name:"col_gutter"}})]:[])),_("thead",{ref:"thead"},t.map(function(y,b){return _("tr",{class:["vxe-header--row",a?_xeUtils.default.isFunction(a)?a({$table:x,$rowIndex:b,fixed:v,type:cellType}):a:""],style:s?_xeUtils.default.isFunction(s)?s({$table:x,$rowIndex:b,fixed:v,type:cellType}):s:null},y.map(function(e,t){var r=e.type,l=e.showHeaderOverflow,o=e.headerAlign,n=e.align,i=e.headerClassName,a=e.children&&e.children.length,s=v?e.fixed!==v&&!a:e.fixed&&W,l=_xeUtils.default.isUndefined(l)||_xeUtils.default.isNull(l)?j:l,o=o||n||z||T,n="ellipsis"===l,c="title"===l,l=!0===l||"tooltip"===l,u=c||l||n,d={},f=e.filters&&e.filters.some(function(e){return e.checked}),p=x.getColumnIndex(e),m=x.getVTColumnIndex(e),h={$table:x,$grid:x.xegrid,$rowIndex:b,column:e,columnIndex:p,$columnIndex:t,_columnIndex:m,fixed:v,type:cellType,isHidden:s,hasFilter:f};return R&&!u&&(n=u=!0),(E.isCurrent||D||C["header-cell-click"]||"cell"===k.trigger)&&(d.click=function(e){return x.triggerHeaderCellClickEvent(e,h)}),C["header-cell-dblclick"]&&(d.dblclick=function(e){return x.triggerHeaderCellDblclickEvent(e,h)}),q&&(d.mousedown=function(e){return x.triggerHeaderCellMousedownEvent(e,h)}),_("th",{class:["vxe-header--column",e.id,(_defineProperty(p={},"col--".concat(o),o),_defineProperty(p,"col--".concat(r),r),_defineProperty(p,"col--last",t===y.length-1),_defineProperty(p,"col--fixed",e.fixed),_defineProperty(p,"col--group",a),_defineProperty(p,"col--ellipsis",u),_defineProperty(p,"fixed--hidden",s),_defineProperty(p,"is--sortable",e.sortable),_defineProperty(p,"col--filter",!!e.filters),_defineProperty(p,"is--filter-active",f),_defineProperty(p,"col--current",M===e),p),_utils.default.getClass(i,h),_utils.default.getClass(O,h)],attrs:{colid:e.id,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},style:$?_xeUtils.default.isFunction($)?$(h):$:null,on:d,key:S||E.useKey||a?e.id:t},[_("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":l,"c--ellipsis":n}]},e.renderHeader(_,h)),s||a||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:E.resizable||w)?null:_("div",{class:["vxe-resizable",{"is--line":!P||"none"===P}],on:{mousedown:function(e){return g.resizeMousedown(e,h)}}})])}).concat(c?[_("th",{class:"vxe-header--gutter col--gutter"})]:[]))}))]),_("div",{class:"vxe-table--header-border-line",ref:"repair"})])},methods:{uploadColumn:function(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertToRows)(this.tableGroupColumn):[]},resizeMousedown:function(e,r){var l=r.column,o=this.$parent,t=this.$el,n=this.fixedType,i=o.$refs,a=i.tableBody,s=i.leftContainer,c=i.rightContainer,u=i.resizeBar,i=e.target,d=e.clientX,f=r.cell=i.parentNode,p=0,m=a.$el,a=_dom.default.getOffsetPos(i,t),t=i.clientWidth,i=Math.floor(t/2),h=(0,_util2.getColReMinWidth)(r)-i,y=a.left-f.clientWidth+t+h,b=a.left+i,_=document.onmousemove,g=document.onmouseup,x="left"===n,v="right"===n,C=0;if(x||v){for(var w=x?"nextElementSibling":"previousElementSibling",P=f[w];P&&!_dom.default.hasClass(P,"fixed--hidden");)_dom.default.hasClass(P,"col--group")||(C+=P.offsetWidth),P=P[w];v&&c&&(b=c.offsetLeft+C)}function S(e){e.stopPropagation(),e.preventDefault();var e=e.clientX-d,e=b+e,t=n?0:m.scrollLeft;x?e=Math.min(e,(c?c.offsetLeft:m.clientWidth)-C-h):v?(y=(s?s.clientWidth:0)+C+h,e=Math.min(e,b+f.clientWidth-h)):y=Math.max(m.scrollLeft,y),p=Math.max(e,y),u.style.left="".concat(p-t,"px")}o._isResize=!0,_dom.default.addClass(o.$el,"drag--resize"),u.style.display="block",document.onmousemove=S,document.onmouseup=function(e){document.onmousemove=_,document.onmouseup=g;var t=l.renderWidth+(v?b-p:p-b);l.resizeWidth=t,u.style.display="none",o._isResize=!1,o._lastResizeTime=Date.now(),o.analyColumnWidth(),o.recalculate(!0).then(function(){o.saveCustomResizable(),o.updateCellAreas(),o.emitEvent("resizable-change",_objectSpread(_objectSpread({},r),{},{resizeWidth:t}),e)}),_dom.default.removeClass(o.$el,"drag--resize")},S(e),o.closeMenu()}}};exports.default=_default;