mirror of
https://gitee.com/xuliangzhan_admin/vxe-table.git
synced 2026-01-21 05:27:57 +08:00
1 line
7.4 KiB
JavaScript
1 line
7.4 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,l=new Array(e.length);t<e.length;t++)l[t]=e[t];return l}}var getAllColumns=function t(e){var l=[];return e.forEach(function(e){e.visible&&(e.children&&e.children.length&&e.children.some(function(e){return e.visible})?(l.push(e),l.push.apply(l,_toConsumableArray(t(e.children)))):l.push(e))}),l},convertToRows=function(e){var r=1;e.forEach(function(e){e.level=1,function t(l,e){if(e&&(l.level=e.level+1,r<l.level&&(r=l.level)),l.children&&l.children.length&&l.children.some(function(e){return e.visible})){var o=0;l.children.forEach(function(e){e.visible&&(t(e,l),o+=e.colSpan)}),l.colSpan=o}else l.colSpan=1}(e)});for(var t=[],l=0;l<r;l++)t.push([]);return getAllColumns(e).forEach(function(e){e.children&&e.children.length&&e.children.some(function(e){return e.visible})?e.rowSpan=1:e.rowSpan=r-e.level+1,t[e.level-1].push(e)}),t},_default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,visibleColumn:Array,collectColumn:Array,fixedColumn:Array,size:String,fixedType:String,isGroup:Boolean},data:function(){return{headerColumn:[]}},watch:{tableColumn:function(){this.uploadColumn()}},created:function(){this.uploadColumn()},mounted:function(){var e=this.$parent,t=this.$el,l=this.$refs,o=this.fixedType,r=e.elemStore,n="".concat(o||"main","-header-");r["".concat(n,"wrapper")]=t,r["".concat(n,"table")]=l.table,r["".concat(n,"colgroup")]=l.colgroup,r["".concat(n,"list")]=l.thead,r["".concat(n,"xSpace")]=l.xSpace,r["".concat(n,"repair")]=l.repair},render:function(C){var w=this,e=this._e,$=this.$parent,T=this.fixedType,t=this.headerColumn,l=this.fixedColumn,o=this.tableColumn,I=$.$listeners,r=$.id,S=$.resizable,z=$.border,A=$.columnKey,n=$.headerRowClassName,P=$.headerCellClassName,i=$.headerRowStyle,E=$.headerCellStyle,R=$.showHeaderOverflow,U=$.headerAlign,W=$.align,k=$.highlightCurrentColumn,D=$.currentColumn,a=$.mouseConfig,s=$.mouseOpts,H=$.scrollXLoad,M=$.overflowX,c=$.scrollbarWidth,O=$.getColumnIndex,q=$.sortOpts,L=a&&s.selected,j=a&&(s.range||s.checked);return H&&T&&(o=l),C("div",{class:["vxe-table--header-wrapper",T?"fixed-".concat(T,"--wrapper"):"body--wrapper"],attrs:{"data-tid":r}},[T?e():C("div",{class:"vxe-body--x-space",ref:"xSpace"}),C("table",{class:"vxe-table--header",attrs:{"data-tid":r,cellspacing:0,cellpadding:0,border:0},ref:"table"},[C("colgroup",{ref:"colgroup"},o.map(function(e,t){var l=e.children&&e.children.length;return C("col",{attrs:{name:e.id},key:A||l?e.id:t})}).concat(c?[C("col",{attrs:{name:"col_gutter"}})]:[])),C("thead",{ref:"thead"},t.map(function(g,_){return C("tr",{class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n({$table:$,$rowIndex:_,fixed:T}):n:""],style:i?_xeUtils.default.isFunction(i)?i({$table:$,$rowIndex:_,fixed:T}):i:null},g.map(function(t,l){var e,o=t.showHeaderOverflow,r=t.headerAlign,n=t.align,i=t.headerClassName,a=t.children&&t.children.length,s=T?t.fixed!==T&&!a:t.fixed&&M,c=_xeUtils.default.isUndefined(o)||_xeUtils.default.isNull(o)?R:o,d=r||n||U||W,u="ellipsis"===c,f="title"===c,h=!0===c||"tooltip"===c,p=f||h||u,m={},x=t.filters&&t.filters.some(function(e){return e.checked}),v=O(t),b={$table:$,$rowIndex:_,column:t,columnIndex:v,$columnIndex:l,fixed:T,isHidden:s,hasFilter:x};H&&!p&&(u=p=!0),(f||h)&&(m.mouseenter=function(e){$._isResize||(f?_tools.DomTools.updateCellTitle(e):h&&$.triggerHeaderTooltipEvent(e,{$table:$,$rowIndex:_,column:t,columnIndex:v,$columnIndex:l,fixed:T}))}),h&&(m.mouseleave=function(e){$._isResize||h&&$.handleTargetLeaveEvent(e)}),(k||I["header-cell-click"]||j||"cell"===q.trigger)&&(m.click=function(e){return $.triggerHeaderCellClickEvent(e,{$table:$,$rowIndex:_,column:t,columnIndex:v,$columnIndex:l,fixed:T,cell:e.currentTarget})}),I["header-cell-dblclick"]&&(m.dblclick=function(e){return _tools.UtilTools.emitEvent($,"header-cell-dblclick",[{$table:$,$rowIndex:_,column:t,columnIndex:v,$columnIndex:l,fixed:T,cell:e.currentTarget},e])}),(L||j)&&(m.mousedown=function(e){return $.triggerHeaderCellMousedownEvent(e,{$table:$,$rowIndex:_,column:t,columnIndex:v,$columnIndex:l,fixed:T,cell:e.currentTarget})});var y="seq"===t.type||"index"===t.type?"seq":t.type;return C("th",{class:["vxe-header--column",t.id,(e={},_defineProperty(e,"col--".concat(d),d),_defineProperty(e,"col--".concat(y),y),_defineProperty(e,"col--last",l===g.length-1),_defineProperty(e,"col--fixed",t.fixed),_defineProperty(e,"col--group",a),_defineProperty(e,"col--ellipsis",p),_defineProperty(e,"fixed--hidden",s),_defineProperty(e,"is--sortable",t.sortable),_defineProperty(e,"is--filter",t.filters),_defineProperty(e,"filter--active",x),_defineProperty(e,"col--current",D===t),e),_tools.UtilTools.getClass(i,b),_tools.UtilTools.getClass(P,b)],attrs:{"data-colid":t.id,colspan:t.colSpan,rowspan:t.rowSpan},style:E?_xeUtils.default.isFunction(E)?E(b):E:null,on:m,key:A||a?t.id:v},[C("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":h,"c--ellipsis":u}]},t.renderHeader(C,b)),!s&&!a&&(_xeUtils.default.isBoolean(t.resizable)?t.resizable:S)?C("div",{class:["vxe-resizable",{"is--line":!z}],on:{mousedown:function(e){return w.resizeMousedown(e,b)}}}):null])}).concat(c?[C("th",{class:"col--gutter"})]:[]))}))]),C("div",{class:"vxe-table--repair",ref:"repair"})])},methods:{uploadColumn:function(){this.headerColumn=this.isGroup?convertToRows(this.collectColumn):[this.$parent.scrollXLoad&&this.fixedType?this.fixedColumn:this.tableColumn]},resizeMousedown:function(e,t){var l=t.column,o=this.$parent,r=this.$el,n=this.fixedType,i=o.$refs,a=i.tableBody,s=i.leftContainer,c=i.rightContainer,d=i.resizeBar,u=e.target,f=e.clientX,h=u.parentNode,p=0,m=a.$el,x=_tools.DomTools.getOffsetPos(u,r),v=u.clientWidth,b=x.left-h.clientWidth+v+36,y=x.left+Math.floor(v/2),g=document.onmousemove,_=document.onmouseup,C="left"===n,w="right"===n,$=0;if(C||w){for(var T=C?"nextElementSibling":"previousElementSibling",I=h[T];I&&!_tools.DomTools.hasClass(I,"fixed--hidden");)_tools.DomTools.hasClass(I,"col--group")||($+=I.offsetWidth),I=I[T];w&&c&&(y=c.offsetLeft+$)}var S=function(e){e.stopPropagation(),e.preventDefault();var t=e.clientX-f,l=y+t,o=n?0:m.scrollLeft;C?l=Math.min(l,(c?c.offsetLeft:m.clientWidth)-$-36):w&&(b=(s?s.clientWidth:0)+$+36,l=Math.min(l,y+h.clientWidth-36)),p=Math.max(l,b),d.style.left="".concat(p-o,"px")};o._isResize=!0,_tools.DomTools.addClass(o.$el,"c--resize"),d.style.display="block",document.onmousemove=S,document.onmouseup=function(){document.onmousemove=g,document.onmouseup=_,l.resizeWidth=l.renderWidth+(w?y-p:p-y),d.style.display="none",o._isResize=!1,o._lastResizeTime=Date.now(),o.analyColumnWidth(),o.recalculate(!0),_tools.DomTools.removeClass(o.$el,"c--resize"),o.$toolbar&&o.$toolbar.updateResizable(),_tools.UtilTools.emitEvent(o,"resizable-change",[t])},S(e)}}};exports.default=_default; |