vxe-table 3.21.15 → 3.21.16
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/module/export/mixin.js +22 -3
- package/es/table/src/header.js +6 -3
- package/es/table/src/methods.js +32 -4
- package/es/table/src/table.js +25 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +66 -11
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/export/mixin.js +26 -3
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/src/header.js +7 -3
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +6 -1
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +25 -2
- package/lib/table/src/table.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 +2 -2
- package/packages/table/module/export/mixin.ts +22 -3
- package/packages/table/src/header.ts +6 -3
- package/packages/table/src/methods.ts +29 -4
- package/packages/table/src/table.ts +31 -3
- /package/es/{iconfont.1781675364289.ttf → iconfont.1781753790081.ttf} +0 -0
- /package/es/{iconfont.1781675364289.woff → iconfont.1781753790081.woff} +0 -0
- /package/es/{iconfont.1781675364289.woff2 → iconfont.1781753790081.woff2} +0 -0
- /package/lib/{iconfont.1781675364289.ttf → iconfont.1781753790081.ttf} +0 -0
- /package/lib/{iconfont.1781675364289.woff → iconfont.1781753790081.woff} +0 -0
- /package/lib/{iconfont.1781675364289.woff2 → iconfont.1781753790081.woff2} +0 -0
|
@@ -478,7 +478,7 @@ function toHtml($xeTable, opts, columns, datas) {
|
|
|
478
478
|
const internalData = $xeTable;
|
|
479
479
|
const { id, border, treeConfig, headerAlign: allHeaderAlign, align: allAlign, footerAlign: allFooterAlign, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow } = props;
|
|
480
480
|
const { isAllSelected, isIndeterminate } = reactData;
|
|
481
|
-
const { mergeBodyCellMaps } = internalData;
|
|
481
|
+
const { mergeBodyCellMaps, mergeFooterCellMaps } = internalData;
|
|
482
482
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
483
483
|
const { print: isPrint, isHeader, isFooter, isColgroup, isMerge, colgroups, original } = opts;
|
|
484
484
|
const allCls = 'check-all';
|
|
@@ -616,15 +616,34 @@ function toHtml($xeTable, opts, columns, datas) {
|
|
|
616
616
|
const footers = getFooterData($xeTable, opts, footerTableData);
|
|
617
617
|
if (footers.length) {
|
|
618
618
|
tables.push('<tfoot>');
|
|
619
|
-
footers.forEach((row) => {
|
|
619
|
+
footers.forEach((row, rIndex) => {
|
|
620
620
|
tables.push(`<tr>${columns.map(column => {
|
|
621
621
|
const footAlign = column.footerAlign || column.align || allFooterAlign || allAlign;
|
|
622
622
|
const classNames = hasEllipsis($xeTable, column, 'showOverflow', allColumnOverflow) ? ['col--ellipsis'] : [];
|
|
623
623
|
const cellValue = getFooterCellValue($xeTable, opts, row, column);
|
|
624
|
+
let rowSpan = 1;
|
|
625
|
+
let colSpan = 1;
|
|
626
|
+
if (isMerge) {
|
|
627
|
+
const _rowIndex = rIndex;
|
|
628
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
629
|
+
const spanRest = mergeFooterCellMaps[`${_rowIndex}:${_columnIndex}`];
|
|
630
|
+
if (spanRest) {
|
|
631
|
+
const { rowspan, colspan } = spanRest;
|
|
632
|
+
if (!rowspan || !colspan) {
|
|
633
|
+
return '';
|
|
634
|
+
}
|
|
635
|
+
if (rowspan > 1) {
|
|
636
|
+
rowSpan = rowspan;
|
|
637
|
+
}
|
|
638
|
+
if (colspan > 1) {
|
|
639
|
+
colSpan = colspan;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
624
643
|
if (footAlign) {
|
|
625
644
|
classNames.push(`col--${footAlign}`);
|
|
626
645
|
}
|
|
627
|
-
return `<td class="${classNames.join(' ')}" title="${cellValue}"><div ${isPrint ? '' : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
|
|
646
|
+
return `<td class="${classNames.join(' ')}" rowspan="${rowSpan}" colspan="${colSpan}" title="${cellValue}"><div ${isPrint ? '' : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
|
|
628
647
|
}).join('')}</tr>`);
|
|
629
648
|
});
|
|
630
649
|
tables.push('</tfoot>');
|
package/es/table/src/header.js
CHANGED
|
@@ -215,6 +215,8 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
215
215
|
const cellOpts = $xeTable.computeCellOpts;
|
|
216
216
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
217
217
|
const headerCellOpts = $xeTable.computeHeaderCellOpts;
|
|
218
|
+
const floatingFilterOpts = $xeTable.computeFloatingFilterOpts;
|
|
219
|
+
const { cellClassName } = floatingFilterOpts;
|
|
218
220
|
const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
|
|
219
221
|
return cols.map((column, $columnIndex) => {
|
|
220
222
|
const { type, showHeaderOverflow, headerAlign, align, filters, editRender, cellRender, floatingFilters, filterRender, slots } = column;
|
|
@@ -269,7 +271,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
269
271
|
tcStyle.minHeight = `${currCellHeight}px`;
|
|
270
272
|
}
|
|
271
273
|
return h('th', {
|
|
272
|
-
class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
|
|
274
|
+
class: ['vxe-table--column vxe-header--column is--floating-filters', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
|
|
273
275
|
[`col--${headAlign}`]: headAlign,
|
|
274
276
|
[`col--${type}`]: type,
|
|
275
277
|
'col--last': isLastColumn,
|
|
@@ -285,7 +287,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
285
287
|
attrs: thAttrs
|
|
286
288
|
}, [
|
|
287
289
|
h('div', {
|
|
288
|
-
class: ['vxe-cell', {
|
|
290
|
+
class: ['vxe-cell', '' + (cellClassName || ''), {
|
|
289
291
|
'c--title': showTitle,
|
|
290
292
|
'c--tooltip': showTooltip,
|
|
291
293
|
'c--ellipsis': showEllipsis
|
|
@@ -330,7 +332,8 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
|
|
|
330
332
|
rowVNs.push(h('tr', {
|
|
331
333
|
key: 'ff',
|
|
332
334
|
class: [
|
|
333
|
-
'vxe-header--row'
|
|
335
|
+
'vxe-header--row is--floating-filters',
|
|
336
|
+
'' + (floatingFilterOpts.rowClassName || '')
|
|
334
337
|
]
|
|
335
338
|
}, renderFilterRows(h, _vm, isOptimizeMode, renderColumnList)));
|
|
336
339
|
}
|
package/es/table/src/methods.js
CHANGED
|
@@ -2862,11 +2862,39 @@ function handleTooltip($xeTable, evnt, tipOpts, type, tdEl, overflowElem, tipEle
|
|
|
2862
2862
|
const { tooltipStore } = reactData;
|
|
2863
2863
|
const { column, row } = params;
|
|
2864
2864
|
const { showAll, contentMethod } = tipOpts;
|
|
2865
|
-
const
|
|
2866
|
-
const useCustom = contentMethod && !XEUtils.eqNull(customContent);
|
|
2867
|
-
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
|
|
2865
|
+
const cellText = XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
|
|
2868
2866
|
const isOver = tipOverEl.scrollWidth > tipOverEl.clientWidth;
|
|
2869
|
-
|
|
2867
|
+
let isShow = false;
|
|
2868
|
+
let customContent = null;
|
|
2869
|
+
let content = '';
|
|
2870
|
+
if (contentMethod) {
|
|
2871
|
+
customContent = contentMethod(params);
|
|
2872
|
+
}
|
|
2873
|
+
// 是否全部展示
|
|
2874
|
+
if (showAll) {
|
|
2875
|
+
// 如果为 null 默认显示
|
|
2876
|
+
if (XEUtils.eqNull(customContent)) {
|
|
2877
|
+
isShow = true;
|
|
2878
|
+
content = cellText;
|
|
2879
|
+
}
|
|
2880
|
+
else if (customContent !== '' && customContent !== false) {
|
|
2881
|
+
// 如果为 '' | false 则不显示
|
|
2882
|
+
isShow = true;
|
|
2883
|
+
content = '' + customContent;
|
|
2884
|
+
}
|
|
2885
|
+
}
|
|
2886
|
+
else {
|
|
2887
|
+
// 如果为 null 使用默认逻辑
|
|
2888
|
+
if (XEUtils.eqNull(customContent)) {
|
|
2889
|
+
isShow = isOver;
|
|
2890
|
+
}
|
|
2891
|
+
else if (customContent !== '' && customContent !== false) {
|
|
2892
|
+
// 如果为 '' | false 则不显示
|
|
2893
|
+
isShow = true;
|
|
2894
|
+
}
|
|
2895
|
+
content = cellText;
|
|
2896
|
+
}
|
|
2897
|
+
if (isShow && content) {
|
|
2870
2898
|
const tipContent = formatText(content);
|
|
2871
2899
|
Object.assign(tooltipStore, {
|
|
2872
2900
|
row,
|
package/es/table/src/table.js
CHANGED
|
@@ -529,6 +529,9 @@ export default {
|
|
|
529
529
|
};
|
|
530
530
|
},
|
|
531
531
|
inject: {
|
|
532
|
+
$xeModal: {
|
|
533
|
+
default: null
|
|
534
|
+
},
|
|
532
535
|
$xeTabs: {
|
|
533
536
|
default: null
|
|
534
537
|
},
|
|
@@ -548,7 +551,7 @@ export default {
|
|
|
548
551
|
const reactData = createReactData();
|
|
549
552
|
return Object.assign(Object.assign({ xID }, reactData), {
|
|
550
553
|
// 私有属性
|
|
551
|
-
reScrollFlag: 0, reLayoutFlag: 0, footFlag: 0, kfFlag: 0, mergeFooteCellFlag: 0, crossTableDragRowInfo: crossTableDragRowGlobal });
|
|
554
|
+
reScrollFlag: 0, reLayoutFlag: 0, footFlag: 0, kfFlag: 0, layoutReFlag: 0, mergeFooteCellFlag: 0, crossTableDragRowInfo: crossTableDragRowGlobal });
|
|
552
555
|
},
|
|
553
556
|
computed: Object.assign(Object.assign({}, {}), { tableId() {
|
|
554
557
|
return this.computeTableId;
|
|
@@ -1363,11 +1366,21 @@ export default {
|
|
|
1363
1366
|
const props = $xeTable;
|
|
1364
1367
|
return Object.assign({}, getConfig().table.undoRedoHistoryConfig, props.undoRedoHistoryConfig);
|
|
1365
1368
|
},
|
|
1366
|
-
|
|
1369
|
+
combineTabsResizeFlag() {
|
|
1367
1370
|
const $xeTable = this;
|
|
1368
1371
|
const $xeTabs = $xeTable.$xeTabs;
|
|
1369
1372
|
return $xeTabs ? $xeTabs.reactData.resizeFlag : null;
|
|
1370
1373
|
},
|
|
1374
|
+
combineModalResizeFlag() {
|
|
1375
|
+
const $xeTable = this;
|
|
1376
|
+
const $xeModal = $xeTable.$xeModal;
|
|
1377
|
+
return $xeModal ? $xeModal.reactData.resizeFlag : null;
|
|
1378
|
+
},
|
|
1379
|
+
combineSplitterResizeFlag() {
|
|
1380
|
+
const $xeTable = this;
|
|
1381
|
+
const $xeSplitter = $xeTable.$xeSplitter;
|
|
1382
|
+
return $xeSplitter ? $xeSplitter.reactData.resizeFlag : null;
|
|
1383
|
+
},
|
|
1371
1384
|
computeVxeLanguage() {
|
|
1372
1385
|
return VxeUI.getLanguage();
|
|
1373
1386
|
},
|
|
@@ -1498,7 +1511,16 @@ export default {
|
|
|
1498
1511
|
});
|
|
1499
1512
|
}
|
|
1500
1513
|
},
|
|
1501
|
-
|
|
1514
|
+
combineTabsResizeFlag() {
|
|
1515
|
+
this.layoutReFlag++;
|
|
1516
|
+
},
|
|
1517
|
+
combineModalResizeFlag() {
|
|
1518
|
+
this.layoutReFlag++;
|
|
1519
|
+
},
|
|
1520
|
+
combineSplitterResizeFlag() {
|
|
1521
|
+
this.layoutReFlag++;
|
|
1522
|
+
},
|
|
1523
|
+
layoutReFlag() {
|
|
1502
1524
|
this.handleGlobalResizeEvent();
|
|
1503
1525
|
},
|
|
1504
1526
|
mergeCells(value) {
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/index.umd.js
CHANGED
|
@@ -3311,7 +3311,7 @@ function getClass(property, params) {
|
|
|
3311
3311
|
/* unused harmony import specifier */ var VxeUI;
|
|
3312
3312
|
|
|
3313
3313
|
|
|
3314
|
-
const version = "3.21.
|
|
3314
|
+
const version = "3.21.16";
|
|
3315
3315
|
core_.VxeUI.version = version;
|
|
3316
3316
|
core_.VxeUI.tableVersion = version;
|
|
3317
3317
|
core_.VxeUI.setConfig({
|
|
@@ -4074,7 +4074,7 @@ function wheelScrollTopTo(diffNum, cb) {
|
|
|
4074
4074
|
const {
|
|
4075
4075
|
log: log_log
|
|
4076
4076
|
} = core_.VxeUI;
|
|
4077
|
-
const log_version = `table v${"3.21.
|
|
4077
|
+
const log_version = `table v${"3.21.16"}`;
|
|
4078
4078
|
const warnLog = log_log.create('warn', log_version);
|
|
4079
4079
|
const errLog = log_log.create('error', log_version);
|
|
4080
4080
|
;// ./packages/table/src/columnInfo.ts
|
|
@@ -7857,7 +7857,12 @@ remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.
|
|
|
7857
7857
|
* 处理显示 tooltip
|
|
7858
7858
|
* @param {Event} evnt 事件
|
|
7859
7859
|
* @param {Row} row 行对象
|
|
7860
|
-
*/function handleTooltip($xeTable,evnt,tipOpts,type,tdEl,overflowElem,tipElem,params){const reactData=$xeTable;const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return $xeTable.$nextTick();}params.cell=tdEl;const{tooltipStore}=reactData;const{column,row}=params;const{showAll,contentMethod}=tipOpts;const
|
|
7860
|
+
*/function handleTooltip($xeTable,evnt,tipOpts,type,tdEl,overflowElem,tipElem,params){const reactData=$xeTable;const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return $xeTable.$nextTick();}params.cell=tdEl;const{tooltipStore}=reactData;const{column,row}=params;const{showAll,contentMethod}=tipOpts;const cellText=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;let isShow=false;let customContent=null;let content='';if(contentMethod){customContent=contentMethod(params);}// 是否全部展示
|
|
7861
|
+
if(showAll){// 如果为 null 默认显示
|
|
7862
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent)){isShow=true;content=cellText;}else if(customContent!==''&&customContent!==false){// 如果为 '' | false 则不显示
|
|
7863
|
+
isShow=true;content=''+customContent;}}else{// 如果为 null 使用默认逻辑
|
|
7864
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent)){isShow=isOver;}else if(customContent!==''&&customContent!==false){// 如果为 '' | false 则不显示
|
|
7865
|
+
isShow=true;}content=cellText;}if(isShow&&content){const tipContent=formatText(content);Object.assign(tooltipStore,{row,column,visible:true,content:tipContent,type,currOpts:tipOpts});$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(isOver?tipOverEl:tipElem,tipContent);}});}return $xeTable.$nextTick();}function handleScrollToRowColumn($xeTable,fieldOrColumn,row,options){const internalData=$xeTable;const{fullColumnIdData}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column&&fullColumnIdData[column.id]){return colToVisible($xeTable,options?options.colAlign!==false:true,column,row);}return $xeTable.$nextTick();}function handleRowExpandReserve($xeTable,row,expanded){const internalData=$xeTable;const{rowExpandedReserveRowMap}=internalData;const expandOpts=$xeTable.computeExpandOpts;if(expandOpts.reserve){const rowid=getRowid($xeTable,row);if(expanded){rowExpandedReserveRowMap[rowid]=row;}else if(rowExpandedReserveRowMap[rowid]){delete rowExpandedReserveRowMap[rowid];}}}function handleDefaultMergeCells($xeTable){const props=$xeTable;const{mergeCells}=props;if(mergeCells){$xeTable.setMergeCells(mergeCells);}}function handleDefaultMergeHeaderItems($xeTable){const props=$xeTable;const{mergeHeaderCells}=props;if(mergeHeaderCells){$xeTable.setMergeHeaderCells(mergeHeaderCells);}}function handleDefaultMergeFooterItems($xeTable){const props=$xeTable;const{mergeFooterCells,mergeFooterItems}=props;const mFooterCells=mergeFooterCells||mergeFooterItems;if(mFooterCells){$xeTable.setMergeFooterCells(mFooterCells);}}// 计算可视渲染相关数据
|
|
7861
7866
|
function computeScrollLoad($xeTable){const reactData=$xeTable;const internalData=$xeTable;return $xeTable.$nextTick().then(()=>{const{scrollXLoad,scrollYLoad}=reactData;const{scrollXStore,scrollYStore}=internalData;const virtualYOpts=$xeTable.computeVirtualYOpts;const virtualXOpts=$xeTable.computeVirtualXOpts;// 计算 X 逻辑
|
|
7862
7867
|
if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible($xeTable);const offsetXSize=Math.max(0,virtualXOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData($xeTable);});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
|
|
7863
7868
|
const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
|
|
@@ -9888,6 +9893,10 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
9888
9893
|
const cellOpts = $xeTable.computeCellOpts;
|
|
9889
9894
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
9890
9895
|
const headerCellOpts = $xeTable.computeHeaderCellOpts;
|
|
9896
|
+
const floatingFilterOpts = $xeTable.computeFloatingFilterOpts;
|
|
9897
|
+
const {
|
|
9898
|
+
cellClassName
|
|
9899
|
+
} = floatingFilterOpts;
|
|
9891
9900
|
const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
|
|
9892
9901
|
return cols.map((column, $columnIndex) => {
|
|
9893
9902
|
const {
|
|
@@ -9952,7 +9961,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
9952
9961
|
tcStyle.minHeight = `${currCellHeight}px`;
|
|
9953
9962
|
}
|
|
9954
9963
|
return h('th', {
|
|
9955
|
-
class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
|
|
9964
|
+
class: ['vxe-table--column vxe-header--column is--floating-filters', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
|
|
9956
9965
|
[`col--${headAlign}`]: headAlign,
|
|
9957
9966
|
[`col--${type}`]: type,
|
|
9958
9967
|
'col--last': isLastColumn,
|
|
@@ -9966,7 +9975,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
|
|
|
9966
9975
|
key: colid,
|
|
9967
9976
|
attrs: thAttrs
|
|
9968
9977
|
}, [h('div', {
|
|
9969
|
-
class: ['vxe-cell', {
|
|
9978
|
+
class: ['vxe-cell', '' + (cellClassName || ''), {
|
|
9970
9979
|
'c--title': showTitle,
|
|
9971
9980
|
'c--tooltip': showTooltip,
|
|
9972
9981
|
'c--ellipsis': showEllipsis
|
|
@@ -10008,7 +10017,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups, renderColumn
|
|
|
10008
10017
|
if (floatingFilterOpts.enabled) {
|
|
10009
10018
|
rowVNs.push(h('tr', {
|
|
10010
10019
|
key: 'ff',
|
|
10011
|
-
class: ['vxe-header--row']
|
|
10020
|
+
class: ['vxe-header--row is--floating-filters', '' + (floatingFilterOpts.rowClassName || '')]
|
|
10012
10021
|
}, renderFilterRows(h, _vm, isOptimizeMode, renderColumnList)));
|
|
10013
10022
|
}
|
|
10014
10023
|
return rowVNs;
|
|
@@ -16675,7 +16684,8 @@ function toHtml($xeTable, opts, columns, datas) {
|
|
|
16675
16684
|
isIndeterminate
|
|
16676
16685
|
} = reactData;
|
|
16677
16686
|
const {
|
|
16678
|
-
mergeBodyCellMaps
|
|
16687
|
+
mergeBodyCellMaps,
|
|
16688
|
+
mergeFooterCellMaps
|
|
16679
16689
|
} = internalData;
|
|
16680
16690
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
16681
16691
|
const {
|
|
@@ -16816,15 +16826,37 @@ function toHtml($xeTable, opts, columns, datas) {
|
|
|
16816
16826
|
const footers = getFooterData($xeTable, opts, footerTableData);
|
|
16817
16827
|
if (footers.length) {
|
|
16818
16828
|
tables.push('<tfoot>');
|
|
16819
|
-
footers.forEach(row => {
|
|
16829
|
+
footers.forEach((row, rIndex) => {
|
|
16820
16830
|
tables.push(`<tr>${columns.map(column => {
|
|
16821
16831
|
const footAlign = column.footerAlign || column.align || allFooterAlign || allAlign;
|
|
16822
16832
|
const classNames = hasEllipsis($xeTable, column, 'showOverflow', allColumnOverflow) ? ['col--ellipsis'] : [];
|
|
16823
16833
|
const cellValue = getFooterCellValue($xeTable, opts, row, column);
|
|
16834
|
+
let rowSpan = 1;
|
|
16835
|
+
let colSpan = 1;
|
|
16836
|
+
if (isMerge) {
|
|
16837
|
+
const _rowIndex = rIndex;
|
|
16838
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
16839
|
+
const spanRest = mergeFooterCellMaps[`${_rowIndex}:${_columnIndex}`];
|
|
16840
|
+
if (spanRest) {
|
|
16841
|
+
const {
|
|
16842
|
+
rowspan,
|
|
16843
|
+
colspan
|
|
16844
|
+
} = spanRest;
|
|
16845
|
+
if (!rowspan || !colspan) {
|
|
16846
|
+
return '';
|
|
16847
|
+
}
|
|
16848
|
+
if (rowspan > 1) {
|
|
16849
|
+
rowSpan = rowspan;
|
|
16850
|
+
}
|
|
16851
|
+
if (colspan > 1) {
|
|
16852
|
+
colSpan = colspan;
|
|
16853
|
+
}
|
|
16854
|
+
}
|
|
16855
|
+
}
|
|
16824
16856
|
if (footAlign) {
|
|
16825
16857
|
classNames.push(`col--${footAlign}`);
|
|
16826
16858
|
}
|
|
16827
|
-
return `<td class="${classNames.join(' ')}" title="${cellValue}"><div ${isPrint ? '' : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
|
|
16859
|
+
return `<td class="${classNames.join(' ')}" rowspan="${rowSpan}" colspan="${colSpan}" title="${cellValue}"><div ${isPrint ? '' : `style="width: ${column.renderWidth}px"`}>${formatText(cellValue, true)}</div></td>`;
|
|
16828
16860
|
}).join('')}</tr>`);
|
|
16829
16861
|
});
|
|
16830
16862
|
tables.push('</tfoot>');
|
|
@@ -20519,6 +20551,9 @@ function renderBody(h, $xeTable) {
|
|
|
20519
20551
|
};
|
|
20520
20552
|
},
|
|
20521
20553
|
inject: {
|
|
20554
|
+
$xeModal: {
|
|
20555
|
+
default: null
|
|
20556
|
+
},
|
|
20522
20557
|
$xeTabs: {
|
|
20523
20558
|
default: null
|
|
20524
20559
|
},
|
|
@@ -20544,6 +20579,7 @@ function renderBody(h, $xeTable) {
|
|
|
20544
20579
|
reLayoutFlag: 0,
|
|
20545
20580
|
footFlag: 0,
|
|
20546
20581
|
kfFlag: 0,
|
|
20582
|
+
layoutReFlag: 0,
|
|
20547
20583
|
mergeFooteCellFlag: 0,
|
|
20548
20584
|
crossTableDragRowInfo: crossTableDragRowGlobal
|
|
20549
20585
|
};
|
|
@@ -21494,11 +21530,21 @@ function renderBody(h, $xeTable) {
|
|
|
21494
21530
|
const props = $xeTable;
|
|
21495
21531
|
return Object.assign({}, table_getConfig().table.undoRedoHistoryConfig, props.undoRedoHistoryConfig);
|
|
21496
21532
|
},
|
|
21497
|
-
|
|
21533
|
+
combineTabsResizeFlag() {
|
|
21498
21534
|
const $xeTable = this;
|
|
21499
21535
|
const $xeTabs = $xeTable.$xeTabs;
|
|
21500
21536
|
return $xeTabs ? $xeTabs.reactData.resizeFlag : null;
|
|
21501
21537
|
},
|
|
21538
|
+
combineModalResizeFlag() {
|
|
21539
|
+
const $xeTable = this;
|
|
21540
|
+
const $xeModal = $xeTable.$xeModal;
|
|
21541
|
+
return $xeModal ? $xeModal.reactData.resizeFlag : null;
|
|
21542
|
+
},
|
|
21543
|
+
combineSplitterResizeFlag() {
|
|
21544
|
+
const $xeTable = this;
|
|
21545
|
+
const $xeSplitter = $xeTable.$xeSplitter;
|
|
21546
|
+
return $xeSplitter ? $xeSplitter.reactData.resizeFlag : null;
|
|
21547
|
+
},
|
|
21502
21548
|
computeVxeLanguage() {
|
|
21503
21549
|
return core_.VxeUI.getLanguage();
|
|
21504
21550
|
},
|
|
@@ -21636,7 +21682,16 @@ function renderBody(h, $xeTable) {
|
|
|
21636
21682
|
});
|
|
21637
21683
|
}
|
|
21638
21684
|
},
|
|
21639
|
-
|
|
21685
|
+
combineTabsResizeFlag() {
|
|
21686
|
+
this.layoutReFlag++;
|
|
21687
|
+
},
|
|
21688
|
+
combineModalResizeFlag() {
|
|
21689
|
+
this.layoutReFlag++;
|
|
21690
|
+
},
|
|
21691
|
+
combineSplitterResizeFlag() {
|
|
21692
|
+
this.layoutReFlag++;
|
|
21693
|
+
},
|
|
21694
|
+
layoutReFlag() {
|
|
21640
21695
|
this.handleGlobalResizeEvent();
|
|
21641
21696
|
},
|
|
21642
21697
|
mergeCells(value) {
|