mirror of
https://gitee.com/xuliangzhan_admin/vxe-table.git
synced 2026-01-21 05:27:57 +08:00
1 line
6.5 KiB
JavaScript
1 line
6.5 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,l,o){return l in e?Object.defineProperty(e,l,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[l]=o,e}var getAllColumns=function l(e){var o=[];return e.forEach(function(e){e.visible&&(e.children&&e.children.length&&e.children.some(function(e){return e.visible})?(o.push(e),o.push.apply(o,l(e.children))):o.push(e))}),o},convertToRows=function(e){var n=1;e.forEach(function(e){e.level=1,function l(o,e){if(e&&(o.level=e.level+1,n<o.level&&(n=o.level)),o.children&&o.children.length&&o.children.some(function(e){return e.visible})){var t=0;o.children.forEach(function(e){e.visible&&(l(e,o),t+=e.colSpan)}),o.colSpan=t}else o.colSpan=1}(e)});for(var l=[],o=0;o<n;o++)l.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=n-e.level+1,l[e.level-1].push(e)}),l},_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,l=this.$el,o=this.$refs,t=this.fixedType,n=e.elemStore,i="".concat(t||"main","-header-");n["".concat(i,"wrapper")]=l,n["".concat(i,"table")]=o.table,n["".concat(i,"colgroup")]=o.colgroup,n["".concat(i,"list")]=o.thead,n["".concat(i,"x-space")]=o.xSpace,n["".concat(i,"repair")]=o.repair},render:function(v){var b=this,e=this._e,g=this.$parent,_=this.fixedType,l=this.headerColumn,o=this.tableColumn,t=this.fixedColumn,y=g.$listeners,C=g.resizable,$=g.border,w=g.columnKey,n=g.headerRowClassName,I=g.headerCellClassName,T=g.showHeaderOverflow,z=g.headerAlign,P=g.align,S=g.highlightCurrentColumn,i=g.mouseConfig,k=void 0===i?{}:i,r=g.scrollXLoad,D=g.overflowX,E=g.getColumnIndex,R=g.sortOpts;return r&&_&&(o=t),v("div",{class:["vxe-table--header-wrapper",_?"fixed-".concat(_,"--wrapper"):"body--wrapper"]},[_?e():v("div",{class:"vxe-body--x-space",ref:"xSpace"}),v("table",{class:"vxe-table--header",attrs:{cellspacing:0,cellpadding:0,border:0},ref:"table"},[v("colgroup",{ref:"colgroup"},o.map(function(e,l){return v("col",{attrs:{name:e.id},key:l})}).concat([v("col",{attrs:{name:"col-gutter"}})])),v("thead",{ref:"thead"},l.map(function(e,x){return v("tr",{class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n({$table:g,$rowIndex:x,fixed:_}):n:""]},e.map(function(l,o){var e,t=l.showHeaderOverflow,n=l.headerAlign,i=l.align,r=l.children&&l.children.length,a=_?l.fixed!==_&&!r:l.fixed&&D,s=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?T:t,c=n||i||z||P,d="ellipsis"===s,u="title"===s,f=!0===s||"tooltip"===s,h=u||f||d,p={},m=E(l);return(u||f)&&(p.mouseover=function(e){g._isResize||(u?_tools.DomTools.updateCellTitle(e):f&&g.triggerHeaderTooltipEvent(e,{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_}))}),f&&(p.mouseout=function(e){g._isResize||g.clostTooltip()}),(S||y["header-cell-click"]||k.checked||"cell"===R.trigger)&&(p.click=function(e){return g.triggerHeaderCellClickEvent(e,{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_,cell:e.currentTarget})}),y["header-cell-dblclick"]&&(p.dblclick=function(e){return _tools.UtilTools.emitEvent(g,"header-cell-dblclick",[{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_,cell:e.currentTarget},e])}),k.checked&&(p.mousedown=function(e){return g.triggerHeaderCellMousedownEvent(e,{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_,cell:e.currentTarget})}),v("th",{class:["vxe-header--column",l.id,(e={},_defineProperty(e,"col--".concat(c),c),_defineProperty(e,"col--fixed",l.fixed),_defineProperty(e,"col--index","index"===l.type),_defineProperty(e,"col--group",r),_defineProperty(e,"col--ellipsis",h),_defineProperty(e,"fixed--hidden",a),_defineProperty(e,"is--sortable",l.sortable),_defineProperty(e,"is--filter",l.filters.length),_defineProperty(e,"filter--active",l.filters.some(function(e){return e.checked})),e),I?_xeUtils.default.isFunction(I)?I({$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_}):I:""],attrs:{"data-colid":l.id,colspan:l.colSpan,rowspan:l.rowSpan},on:p,key:w||r?l.id:m},[v("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":f,"c--ellipsis":d}]},l.renderHeader(v,{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_,isHidden:a})),!a&&!r&&(_xeUtils.default.isBoolean(l.resizable)?l.resizable:C)?v("div",{class:["vxe-resizable",{"is--line":!$}],on:{mousedown:function(e){return b.resizeMousedown(e,{$table:g,$rowIndex:x,column:l,columnIndex:m,$columnIndex:o,fixed:_,isHidden:a})}}}):null])}).concat([v("th",{class:"col--gutter"})]))}))]),v("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,l){var o=l.column,t=this.$parent,n=this.$el,i=this.fixedType,r=t.$refs,a=r.tableBody,s=r.leftContainer,c=r.rightContainer,d=r.resizeBar,u=e.target,f=e.clientX,h=u.parentNode,p=0,m=a.$el,x=_tools.DomTools.getOffsetPos(u,n),v=u.clientWidth,b=x.left-h.clientWidth+v+36,g=x.left+Math.floor(v/2),_=document.onmousemove,y=document.onmouseup,C="left"===i,$="right"===i,w=0;if(C||$){for(var I=C?"nextElementSibling":"previousElementSibling",T=h[I];T&&!_tools.DomTools.hasClass(T,"fixed--hidden");)_tools.DomTools.hasClass(T,"col--group")||(w+=T.offsetWidth),T=T[I];$&&c&&(g=c.offsetLeft+w)}var z=function(e){e.stopPropagation(),e.preventDefault();var l=e.clientX-f,o=g+l,t=i?0:m.scrollLeft;C?o=Math.min(o,(c?c.offsetLeft:m.clientWidth)-w-36):$&&(b=(s?s.clientWidth:0)+w+36,o=Math.min(o,g+h.clientWidth-36)),p=Math.max(o,b),d.style.left="".concat(p-t,"px")};t._isResize=!0,_tools.DomTools.addClass(t.$el,"c--resize"),d.style.display="block",document.onmousemove=z,document.onmouseup=function(e){document.onmousemove=_,document.onmouseup=y,o.resizeWidth=o.renderWidth+($?g-p:p-g),d.style.display="none",t._isResize=!1,t._lastResizeTime=Date.now(),t.analyColumnWidth(),t.recalculate(!0),_tools.DomTools.removeClass(t.$el,"c--resize"),t._toolbar&&t._toolbar.updateResizable(),_tools.UtilTools.emitEvent(t,"resizable-change",[l])},z(e)}}};exports.default=_default; |