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.
- package/es/style.css +1 -1
- package/es/table/src/footer.js +11 -15
- package/es/table/src/header.js +20 -11
- package/es/table/src/methods.js +9 -5
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +27 -32
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/footer.js +10 -15
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +5 -10
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +10 -5
- package/lib/table/src/methods.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/table/src/footer.ts +11 -15
- package/packages/table/src/header.ts +20 -11
- package/packages/table/src/methods.ts +11 -5
- /package/es/{iconfont.1745374111946.ttf → iconfont.1745458119157.ttf} +0 -0
- /package/es/{iconfont.1745374111946.woff → iconfont.1745458119157.woff} +0 -0
- /package/es/{iconfont.1745374111946.woff2 → iconfont.1745458119157.woff2} +0 -0
- /package/lib/{iconfont.1745374111946.ttf → iconfont.1745458119157.ttf} +0 -0
- /package/lib/{iconfont.1745374111946.woff → iconfont.1745458119157.woff} +0 -0
- /package/lib/{iconfont.1745374111946.woff2 → iconfont.1745458119157.woff2} +0 -0
package/lib/table/src/footer.js
CHANGED
|
@@ -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
|
-
|
|
82
|
+
const showEllipsis = footOverflow === 'ellipsis';
|
|
83
83
|
const showTitle = footOverflow === 'title';
|
|
84
84
|
const showTooltip = footOverflow === true || footOverflow === 'tooltip';
|
|
85
|
-
|
|
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
|
|
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
|
|
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))])])])}};
|
package/lib/table/src/header.js
CHANGED
|
@@ -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
|
-
|
|
81
|
+
const showEllipsis = headOverflow === 'ellipsis';
|
|
82
82
|
const showTitle = headOverflow === 'title';
|
|
83
83
|
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
84
|
-
|
|
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
|
|
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:
|
|
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):[]}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -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
|
|
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
|
|
1317
|
+
if (scrollXLoad && allColumnFooterOverflow) {
|
|
1315
1318
|
if (spanMethod || footerSpanMethod) {
|
|
1316
1319
|
// 如果不支持优化模式
|
|
1317
1320
|
} else {
|
|
1318
1321
|
isOptimizeMode = true;
|
|
1319
1322
|
}
|
|
1320
1323
|
}
|
|
1321
|
-
if (
|
|
1324
|
+
if (!isOptimizeMode) {
|
|
1322
1325
|
renderColumnList = visibleColumn;
|
|
1326
|
+
}
|
|
1327
|
+
if (fixedType) {
|
|
1323
1328
|
if (isOptimizeMode) {
|
|
1324
1329
|
renderColumnList = fixedColumn || [];
|
|
1325
1330
|
}
|