vxe-table 3.15.8 → 3.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ const {
15
15
  renderer,
16
16
  renderEmptyElement
17
17
  } = _ui.VxeUI;
18
- function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIndex) {
18
+ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $rowIndex, _rowIndex) {
19
19
  const props = _vm;
20
20
  const $xeTable = _vm.$parent;
21
21
  const tableProps = $xeTable;
@@ -79,10 +79,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
79
79
  const isPadding = _xeUtils.default.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
80
80
  const footOverflow = _xeUtils.default.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
81
81
  const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
82
- let showEllipsis = footOverflow === 'ellipsis';
82
+ const showEllipsis = footOverflow === 'ellipsis';
83
83
  const showTitle = footOverflow === 'title';
84
84
  const showTooltip = footOverflow === true || footOverflow === 'tooltip';
85
- let hasEllipsis = showTitle || showTooltip || showEllipsis;
85
+ const hasEllipsis = showTitle || showTooltip || showEllipsis;
86
86
  const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
87
87
  const attrs = {
88
88
  colid
@@ -108,10 +108,6 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
108
108
  type: renderType,
109
109
  data: footerTableData
110
110
  };
111
- // 纵向虚拟滚动不支持动态行高
112
- if (scrollXLoad && !hasEllipsis) {
113
- showEllipsis = hasEllipsis = true;
114
- }
115
111
  if (showTitle || showTooltip || showAllTip) {
116
112
  tfOns.mouseenter = evnt => {
117
113
  if (showTitle) {
@@ -178,7 +174,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
178
174
  const isLastColumn = $columnIndex === tableColumn.length - 1;
179
175
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
180
176
  let isVNPreEmptyStatus = false;
181
- if (!isMergeCell) {
177
+ if (isOptimizeMode && !isMergeCell) {
182
178
  if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
183
179
  isVNPreEmptyStatus = true;
184
180
  }
@@ -231,7 +227,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
231
227
  }) : renderEmptyElement($xeTable)]);
232
228
  });
233
229
  }
234
- function renderHeads(h, _vm, renderColumnList) {
230
+ function renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
235
231
  const props = _vm;
236
232
  const $xeTable = _vm.$parent;
237
233
  const tableProps = $xeTable;
@@ -269,13 +265,13 @@ function renderHeads(h, _vm, renderColumnList) {
269
265
  class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
270
266
  style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : undefined
271
267
  }
272
- }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
268
+ }, renderRows(h, _vm, isOptimizeMode, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
273
269
  }
274
270
  return h('tr', {
275
271
  key: $rowIndex,
276
272
  class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
277
273
  style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : undefined
278
- }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
274
+ }, renderRows(h, _vm, isOptimizeMode, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
279
275
  });
280
276
  }
281
277
  var _default = exports.default = {
@@ -363,20 +359,19 @@ var _default = exports.default = {
363
359
  isColLoading,
364
360
  overflowX,
365
361
  scrollXLoad,
366
- scrollYLoad,
367
362
  dragCol
368
363
  } = tableReactData;
369
364
  let renderColumnList = tableColumn;
370
365
  let isOptimizeMode = false;
371
366
  // 如果是使用优化模式
372
- if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
367
+ if (scrollXLoad && allColumnFooterOverflow) {
373
368
  if (spanMethod || footerSpanMethod) {
374
369
  // 如果不支持优化模式
375
370
  } else {
376
371
  isOptimizeMode = true;
377
372
  }
378
373
  }
379
- if (!isColLoading && (fixedType || !overflowX)) {
374
+ if (!isOptimizeMode || !isColLoading && (fixedType || !overflowX)) {
380
375
  renderColumnList = visibleColumn;
381
376
  }
382
377
  if (fixedType) {
@@ -456,6 +451,6 @@ var _default = exports.default = {
456
451
  */
457
452
  h('tfoot', {
458
453
  ref: 'refFooterTFoot'
459
- }, renderHeads(h, this, renderColumnList))])])]);
454
+ }, renderHeads(h, this, isOptimizeMode, renderColumnList))])])]);
460
455
  }
461
456
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S){let E=e.$parent;var l=E,t=E,r=E;let I=E.$xeGrid,O=e.fixedType,{resizable:D,border:R,footerCellClassName:z,footerCellStyle:k,footerAlign:U,footerSpanMethod:A,align:q,columnKey:L,showFooterOverflow:M}=l,{scrollXLoad:X,scrollYLoad:H,overflowX:N,currentColumn:j}=t,{fullColumnIdData:V,mergeFooterList:W,mergeFooterCellMaps:B,scrollXStore:G}=r,K=E.computeVirtualXOpts,Y=E.computeTooltipOpts,ee=E.resizableOpts.isAllColumnDrag,P=E.computeColumnOpts;e=E.computeDefaultRowHeight;let J=E.computeCellOpts,Q=E.computeFooterCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e;return _.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=l,d=l.id,u=V[d]||{},n=n||s,s=n?renderer.get(n.name):null;let p=Y.showAll;var n=l.children&&l.children.length,n=O?l.fixed!==O&&!n:l.fixed&&N,c=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,r=_xeUtils.default.eqNull(r)?M:r,o=o||(s?s.tableFooterCellAlign:"")||U||i||(s?s.tableCellAlign:"")||q;let f="ellipsis"===r,x="title"===r,m=!0===r||"tooltip"===r,g=x||m||f;var i=_xeUtils.default.isBoolean(l.resizable)?l.resizable:P.resizable||D,s={colid:d},r={},v=u.index,u=u._index,h=u;let w={$table:E,$grid:I,row:T,rowIndex:S,_rowIndex:S,$rowIndex:$,column:l,columnIndex:v,$columnIndex:e,_columnIndex:u,itemIndex:h,items:T,fixed:O,type:renderType,data:F},y=(X&&!g&&(f=g=!0),(x||m||p)&&(r.mouseenter=e=>{x?(0,_dom.updateCellTitle)(e.currentTarget,l):(m||p)&&E.triggerFooterTooltipEvent(e,w)}),(m||p)&&(r.mouseleave=e=>{(m||p)&&E.handleTargetLeaveEvent(e)}),r.click=e=>{E.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},!(r.dblclick=e=>{E.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)}));if(W.length){v=B[S+":"+u];if(v){var{rowspan:h,colspan:v}=v;if(!h||!v)return null;1<h&&(y=!0,s.rowspan=h),1<v&&(y=!0,s.colspan=v)}}else if(A){var{rowspan:h=1,colspan:v=1}=A(w)||{};if(!h||!v)return null;1<h&&(s.rowspan=h),1<v&&(s.colspan=v)}h=e===_.length-1,v=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let b=!1;y||X&&!l.fixed&&!K.immediate&&(u<G.visibleStartIndex-G.preloadSize||u>G.visibleEndIndex+G.preloadSize)&&(b=!0);u={};return g?u.height=Z+"px":u.minHeight=Z+"px",C("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":h,"fixed--width":!v,"fixed--hidden":n,"is--padding":c,"col--ellipsis":g,"col--current":j===l},(0,_utils.getClass)(a,w),(0,_utils.getClass)(z,w)],attrs:s,style:k?_xeUtils.default.isFunction(k)?k(w):k:void 0,on:r,key:L||X||H||P.useKey||P.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":x,"c--tooltip":m,"c--ellipsis":f}],style:u},b?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(C,w))]),!n&&i&&ee?C("div",{class:["vxe-cell--col-resizable",{"is--line":!R||"none"===R}],on:{mousedown:e=>E.handleColResizeMousedownEvent(e,O,w),dblclick:e=>E.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(E)])})}function renderHeads(o,i,a){let n=i.$parent;var e=n,l=n;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:p}=e,{isColLoading:c,isDragColMove:f}=l,x=n.computeColumnOpts,m=n.computeColumnDragOpts;return d.map((e,l)=>{var t=l,r={$table:n,row:e,_rowIndex:t,$rowIndex:l,fixed:s,type:renderType};return!c&&x.drag&&m.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0}},renderRows(o,i,a,d,e,l,t)):o("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(o,i,a,d,e,l,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-footer-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refFooterScroll,t[l+"table"]=e.$refs.refFooterTable,t[l+"colgroup"]=e.$refs.refFooterColgroup,t[l+"list"]=e.$refs.refFooterTFoot,t[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,i=l.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:r,isColLoading:c,overflowX:f,scrollXLoad:x,scrollYLoad:m,dragCol:g}=r;let v=s,h=!(x||m||u)||e||d?!1:!0;return c||!a&&f||(v=o),a&&h&&(v=n||[]),a||r||x&&g&&2<v.length&&(m=p[g.id])&&(u=m._index,e=v[0],d=v[v.length-1],c=p[e.id],f=p[d.id],c)&&f&&(o=c._index,r=f._index,u<o?v=[g].concat(v):r<u&&(v=v.concat([g]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(l):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},v.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,v))])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S,E){let I=e.$parent;var l=I,t=I,r=I;let O=I.$xeGrid,D=e.fixedType,{resizable:R,border:z,footerCellClassName:k,footerCellStyle:U,footerAlign:A,footerSpanMethod:q,align:M,columnKey:X,showFooterOverflow:L}=l,{scrollXLoad:H,scrollYLoad:N,overflowX:j,currentColumn:V}=t,{fullColumnIdData:W,mergeFooterList:B,mergeFooterCellMaps:G,scrollXStore:K}=r,P=I.computeVirtualXOpts,ee=I.computeTooltipOpts,le=I.resizableOpts.isAllColumnDrag,Y=I.computeColumnOpts;e=I.computeDefaultRowHeight;let J=I.computeCellOpts,Q=I.computeFooterCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e;return F.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=l,d=l.id,u=W[d]||{},n=n||s,s=n?renderer.get(n.name):null;let p=ee.showAll;var n=l.children&&l.children.length,n=D?l.fixed!==D&&!n:l.fixed&&j,c=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,r=_xeUtils.default.eqNull(r)?L:r,o=o||(s?s.tableFooterCellAlign:"")||A||i||(s?s.tableCellAlign:"")||M,i="ellipsis"===r;let f="title"===r,x=!0===r||"tooltip"===r;var s=f||x||i,r=_xeUtils.default.isBoolean(l.resizable)?l.resizable:Y.resizable||R,m={colid:d},g={},v=u.index,u=u._index,h=u;let w={$table:I,$grid:O,row:$,rowIndex:E,_rowIndex:E,$rowIndex:S,column:l,columnIndex:v,$columnIndex:e,_columnIndex:u,itemIndex:h,items:$,fixed:D,type:renderType,data:T},y=((f||x||p)&&(g.mouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(x||p)&&I.triggerFooterTooltipEvent(e,w)}),(x||p)&&(g.mouseleave=e=>{(x||p)&&I.handleTargetLeaveEvent(e)}),g.click=e=>{I.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},!(g.dblclick=e=>{I.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)}));if(B.length){v=G[E+":"+u];if(v){var{rowspan:h,colspan:v}=v;if(!h||!v)return null;1<h&&(y=!0,m.rowspan=h),1<v&&(y=!0,m.colspan=v)}}else if(q){var{rowspan:h=1,colspan:v=1}=q(w)||{};if(!h||!v)return null;1<h&&(m.rowspan=h),1<v&&(m.colspan=v)}h=e===F.length-1,v=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let b=!1;_&&!y&&H&&!l.fixed&&!P.immediate&&(u<K.visibleStartIndex-K.preloadSize||u>K.visibleEndIndex+K.preloadSize)&&(b=!0);u={};return s?u.height=Z+"px":u.minHeight=Z+"px",C("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":h,"fixed--width":!v,"fixed--hidden":n,"is--padding":c,"col--ellipsis":s,"col--current":V===l},(0,_utils.getClass)(a,w),(0,_utils.getClass)(k,w)],attrs:m,style:U?_xeUtils.default.isFunction(U)?U(w):U:void 0,on:g,key:X||H||N||Y.useKey||Y.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":x,"c--ellipsis":i}],style:u},b?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(C,w))]),!n&&r&&le?C("div",{class:["vxe-cell--col-resizable",{"is--line":!z||"none"===z}],on:{mousedown:e=>I.handleColResizeMousedownEvent(e,D,w),dblclick:e=>I.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(I)])})}function renderHeads(o,i,a,n){let s=i.$parent;var e=s,l=s;let{fixedType:d,footerTableData:u}=i,{footerRowClassName:p,footerRowStyle:c}=e,{isColLoading:f,isDragColMove:x}=l,m=s.computeColumnOpts,g=s.computeColumnDragOpts;return u.map((e,l)=>{var t=l,r={$table:s,row:e,_rowIndex:t,$rowIndex:l,fixed:d,type:renderType};return!f&&m.drag&&g.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(x?"":"-disabled"),class:["vxe-footer--row",p?_xeUtils.default.isFunction(p)?p(r):p:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0}},renderRows(o,i,a,n,u,e,l,t)):o("tr",{key:l,class:["vxe-footer--row",p?_xeUtils.default.isFunction(p)?p(r):p:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(o,i,a,n,u,e,l,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-footer-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refFooterScroll,t[l+"table"]=e.$refs.refFooterTable,t[l+"colgroup"]=e.$refs.refFooterColgroup,t[l+"list"]=e.$refs.refFooterTFoot,t[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,i=l.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:r,isColLoading:c,overflowX:f,scrollXLoad:x,dragCol:m}=r;let g=s,v=!1;return x&&u&&(e||d||(v=!0)),v&&(c||!a&&f)||(g=o),a&&v&&(g=n||[]),a||r||x&&m&&2<g.length&&(u=p[m.id])&&(e=u._index,d=g[0],c=g[g.length-1],f=p[d.id],o=p[c.id],f)&&o&&(r=f._index,x=o._index,e<r?g=[m].concat(g):x<e&&(g=g.concat([m]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(l):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},g.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,v,g))])])])}};
@@ -78,10 +78,10 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
78
78
  const isPadding = _xeUtils.default.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
79
79
  const headOverflow = _xeUtils.default.isUndefined(showHeaderOverflow) || _xeUtils.default.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
80
80
  const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
81
- let showEllipsis = headOverflow === 'ellipsis';
81
+ const showEllipsis = headOverflow === 'ellipsis';
82
82
  const showTitle = headOverflow === 'title';
83
83
  const showTooltip = headOverflow === true || headOverflow === 'tooltip';
84
- let hasEllipsis = showTitle || showTooltip || showEllipsis;
84
+ const hasEllipsis = showTitle || showTooltip || showEllipsis;
85
85
  let hasFilter = false;
86
86
  let firstFilterOption = null;
87
87
  if (filters) {
@@ -113,10 +113,6 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
113
113
  click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
114
114
  dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
115
115
  };
116
- // 虚拟滚动不支持动态高度
117
- if (scrollXLoad && !hasEllipsis) {
118
- showEllipsis = hasEllipsis = true;
119
- }
120
116
  const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
121
117
  let isDisabledDrag = false;
122
118
  if (isColDragCell) {
@@ -139,7 +135,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
139
135
  const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
140
136
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
141
137
  let isVNPreEmptyStatus = false;
142
- if (!isGroup) {
138
+ if (isOptimizeMode && !isGroup) {
143
139
  if (!dragCol || dragCol.id !== colid) {
144
140
  if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
145
141
  isVNPreEmptyStatus = true;
@@ -334,7 +330,6 @@ var _default = exports.default = {
334
330
  isColLoading,
335
331
  overflowX,
336
332
  scrollXLoad,
337
- scrollYLoad,
338
333
  dragCol
339
334
  } = tableReactData;
340
335
  const {
@@ -349,14 +344,14 @@ var _default = exports.default = {
349
344
  renderColumnList = visibleColumn;
350
345
  } else {
351
346
  // 如果是使用优化模式
352
- if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
347
+ if (scrollXLoad && allColumnHeaderOverflow) {
353
348
  if (spanMethod || footerSpanMethod) {
354
349
  // 如果不支持优化模式
355
350
  } else {
356
351
  isOptimizeMode = true;
357
352
  }
358
353
  }
359
- if (!isColLoading && (fixedType || !overflowX)) {
354
+ if (!isOptimizeMode || !isColLoading && (fixedType || !overflowX)) {
360
355
  renderColumnList = visibleColumn;
361
356
  }
362
357
  if (fixedType) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,D,E,S,T)=>{let R=e.$parent,O=R.$xeGrid;var l=R,r=R,a=R;let I=e.fixedType,{resizable:U,columnKey:k,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:X,align:F,mouseConfig:q}=l,{currentColumn:L,dragCol:G,scrollXLoad:N,scrollYLoad:B,overflowX:V}=r,{fullColumnIdData:W,scrollXStore:K}=a,P=R.computeVirtualXOpts,Y=R.computeColumnOpts,j=R.computeColumnDragOpts,J=R.computeCellOpts;e=R.computeDefaultRowHeight;let Q=R.computeHeaderCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e,{disabledMethod:ee,isCrossDrag:le,isPeerDrag:re}=j;return S.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:o,editRender:s,cellRender:n}=e,u=e.id,c=W[u]||{},s=s||n,n=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=I?e.fixed!==I&&!s:e.fixed&&V,f=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(n?n.tableHeaderCellAlign:"")||X||d||(n?n.tableCellAlign:"")||F;let m="ellipsis"===a;d="title"===a,n=!0===a||"tooltip"===a;let x=d||n||m,g=!1,h=null;i&&(h=i[0],g=i.some(e=>e.checked));a=c.index,c=c._index;let v={$table:R,$grid:O,$rowIndex:T,column:e,columnIndex:a,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:I,type:cellType,isHidden:p,hasFilter:g};var a={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=(N&&!x&&(m=x=!0),Y.drag&&"cell"===j.trigger);let y=!1;b&&(y=!(!ee||!ee(v))),(q||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),Y.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:Y.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;D||G&&G.id===u||N&&!e.fixed&&!P.immediate&&(c<K.visibleStartIndex-K.preloadSize||c>K.visibleEndIndex+K.preloadSize)&&(_=!0);c={};return x?c.height=Z+"px":c.minHeight=Z+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":Y.drag&&!e.fixed&&!y&&(le||re||!e.parentId),"is--drag-disabled":Y.drag&&y,"col--current":L===e},(0,_utils.getClass)(o,v),(0,_utils.getClass)(z,v)],attrs:a,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:k||N||B||Y.useKey||Y.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":n,"c--ellipsis":m}],style:c},_||E&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!p&&w?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,I,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let o=t.$parent;var l=o,r=o;let s=t.fixedType,n=o.computeColumnOpts,u=o.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,{isColLoading:f,isDragColMove:m}=r;return e.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return!f&&n.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(m?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,d,i,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:o,tableColumn:s}=this;var n=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:x,scrollYLoad:g,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:v}=t,C=l.computeMouseOpts;let b=n,y=s,w=!1;return a?y=t:(!(x||g||u)||c||p||(w=!0),f||!i&&m||(y=t),i&&w&&(y=o||[]),b=[y]),i||a||x&&h&&2<y.length&&(n=v[h.id])&&(g=n._index,u=y[0],c=y[y.length-1],p=v[u.id],f=v[c.id],p)&&f&&(m=p._index,t=f._index,g<m?(y=[h].concat(y),b=[[h].concat(b[0])].concat(b.slice(1))):t<g&&(y=y.concat([h]),b=[b[0].concat([h])].concat(b.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},y.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,b)),e&&C.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-copy-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,D,E,S,T)=>{let R=e.$parent,O=R.$xeGrid;var l=R,r=R,a=R;let I=e.fixedType,{resizable:U,columnKey:k,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:X,align:F,mouseConfig:q}=l,{currentColumn:G,dragCol:L,scrollXLoad:N,scrollYLoad:B,overflowX:V}=r,{fullColumnIdData:W,scrollXStore:K}=a,P=R.computeVirtualXOpts,j=R.computeColumnOpts,Y=R.computeColumnDragOpts,J=R.computeCellOpts;e=R.computeDefaultRowHeight;let Q=R.computeHeaderCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e,{disabledMethod:ee,isCrossDrag:le,isPeerDrag:re}=Y;return S.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:s,editRender:o,cellRender:n}=e,u=e.id,c=W[u]||{},o=o||n,n=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=I?e.fixed!==I&&!o:e.fixed&&V,f=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(n?n.tableHeaderCellAlign:"")||X||i||(n?n.tableCellAlign:"")||F,i="ellipsis"===a,n="title"===a,a=!0===a||"tooltip"===a,m=n||a||i;let x=!1,g=null;d&&(g=d[0],x=d.some(e=>e.checked));var h=c.index,c=c._index;let v={$table:R,$grid:O,$rowIndex:T,column:e,columnIndex:h,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:I,type:cellType,isHidden:p,hasFilter:x};var h={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=j.drag&&"cell"===Y.trigger;let y=!1;b&&(y=!(!ee||!ee(v))),(q||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),j.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:j.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;!E||D||L&&L.id===u||N&&!e.fixed&&!P.immediate&&(c<K.visibleStartIndex-K.preloadSize||c>K.visibleEndIndex+K.preloadSize)&&(_=!0);c={};return m?c.height=Z+"px":c.minHeight=Z+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":x,"is--drag-active":j.drag&&!e.fixed&&!y&&(le||re||!e.parentId),"is--drag-disabled":j.drag&&y,"col--current":G===e},(0,_utils.getClass)(s,v),(0,_utils.getClass)(z,v)],attrs:h,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:k||N||B||j.useKey||j.drag||o?u:l},[$("div",{class:["vxe-cell",{"c--title":n,"c--tooltip":a,"c--ellipsis":i}],style:c},_||E&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!p&&w?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,I,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,i,d,e){let s=t.$parent;var l=s,r=s;let o=t.fixedType,n=s.computeColumnOpts,u=s.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,{isColLoading:f,isDragColMove:m}=r;return e.map((e,l)=>{var r={$table:s,$rowIndex:l,fixed:o,type:cellType};return!f&&n.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(m?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,i,d,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,i,d,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:s,tableColumn:o}=this;var n=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:x,dragCol:g}=a,{visibleColumn:t,fullColumnIdData:h}=t,v=l.computeMouseOpts;let C=n,b=o,y=!1;return a?b=t:(x&&u&&(c||p||(y=!0)),y&&(f||!d&&m)||(b=t),d&&y&&(b=s||[]),C=[b]),d||a||x&&g&&2<b.length&&(n=h[g.id])&&(u=n._index,c=b[0],p=b[b.length-1],f=h[c.id],m=h[p.id],f)&&m&&(t=f._index,x=m._index,u<t?(b=[g].concat(b),C=[[g].concat(C[0])].concat(C.slice(1))):x<u&&(b=b.concat([g]),C=[C[0].concat([g])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,y,C)),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-copy-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
@@ -1098,7 +1098,8 @@ function updateStyle($xeTable) {
1098
1098
  columnStore,
1099
1099
  editStore,
1100
1100
  isAllOverflow,
1101
- expandColumn
1101
+ expandColumn,
1102
+ isColLoading
1102
1103
  } = reactData;
1103
1104
  const {
1104
1105
  visibleColumn,
@@ -1217,15 +1218,17 @@ function updateStyle($xeTable) {
1217
1218
  renderColumnList = visibleColumn;
1218
1219
  } else {
1219
1220
  // 如果是使用优化模式
1220
- if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
1221
+ if (scrollXLoad && allColumnHeaderOverflow) {
1221
1222
  if (spanMethod || footerSpanMethod) {
1222
1223
  // 如果不支持优化模式
1223
1224
  } else {
1224
1225
  isOptimizeMode = true;
1225
1226
  }
1226
1227
  }
1227
- if (fixedType) {
1228
+ if (!isOptimizeMode || !isColLoading && (fixedType || !overflowX)) {
1228
1229
  renderColumnList = visibleColumn;
1230
+ }
1231
+ if (fixedType) {
1229
1232
  // 如果是使用优化模式
1230
1233
  if (isOptimizeMode) {
1231
1234
  renderColumnList = fixedColumn || [];
@@ -1311,15 +1314,17 @@ function updateStyle($xeTable) {
1311
1314
  let renderColumnList = tableColumn;
1312
1315
  let isOptimizeMode = false;
1313
1316
  // 如果是使用优化模式
1314
- if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
1317
+ if (scrollXLoad && allColumnFooterOverflow) {
1315
1318
  if (spanMethod || footerSpanMethod) {
1316
1319
  // 如果不支持优化模式
1317
1320
  } else {
1318
1321
  isOptimizeMode = true;
1319
1322
  }
1320
1323
  }
1321
- if (fixedType) {
1324
+ if (!isOptimizeMode) {
1322
1325
  renderColumnList = visibleColumn;
1326
+ }
1327
+ if (fixedType) {
1323
1328
  if (isOptimizeMode) {
1324
1329
  renderColumnList = fixedColumn || [];
1325
1330
  }