vxe-table 4.13.7 → 4.13.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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/render/index.js +13 -3
- package/es/table/src/footer.js +11 -15
- package/es/table/src/header.js +20 -11
- package/es/table/src/table.js +6 -4
- package/es/table/style.css +12 -5
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +3 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +12 -5
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +40 -36
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/render/index.js +14 -3
- package/lib/table/render/index.min.js +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/table.js +4 -4
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +12 -5
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +3 -3
- 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/lib/vxe-table/style/style.css +12 -5
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/render/index.ts +17 -3
- package/packages/table/src/footer.ts +11 -15
- package/packages/table/src/header.ts +21 -11
- package/packages/table/src/table.ts +7 -4
- package/packages/ui/index.ts +2 -2
- package/styles/components/table.scss +30 -17
- /package/es/{iconfont.1745290253213.ttf → iconfont.1745458144424.ttf} +0 -0
- /package/es/{iconfont.1745290253213.woff → iconfont.1745458144424.woff} +0 -0
- /package/es/{iconfont.1745290253213.woff2 → iconfont.1745458144424.woff2} +0 -0
- /package/lib/{iconfont.1745290253213.ttf → iconfont.1745458144424.ttf} +0 -0
- /package/lib/{iconfont.1745290253213.woff → iconfont.1745458144424.woff} +0 -0
- /package/lib/{iconfont.1745290253213.woff2 → iconfont.1745458144424.woff2} +0 -0
package/es/table/src/footer.js
CHANGED
|
@@ -35,7 +35,7 @@ export default defineComponent({
|
|
|
35
35
|
const refFooterColgroup = ref();
|
|
36
36
|
const refFooterTFoot = ref();
|
|
37
37
|
const refFooterXSpace = ref();
|
|
38
|
-
const renderRows = (tableColumn, footerTableData, row, $rowIndex, _rowIndex) => {
|
|
38
|
+
const renderRows = (isOptimizeMode, tableColumn, footerTableData, row, $rowIndex, _rowIndex) => {
|
|
39
39
|
const $xeGrid = $xeTable.xeGrid;
|
|
40
40
|
const { fixedType } = props;
|
|
41
41
|
const { resizable: allResizable, border, footerCellClassName, footerCellStyle, footerAlign: allFooterAlign, footerSpanMethod, align: allAlign, columnKey, showFooterOverflow: allColumnFooterOverflow } = tableProps;
|
|
@@ -62,10 +62,10 @@ export default defineComponent({
|
|
|
62
62
|
const isPadding = XEUtils.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
|
|
63
63
|
const footOverflow = XEUtils.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
|
|
64
64
|
const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
65
|
-
|
|
65
|
+
const showEllipsis = footOverflow === 'ellipsis';
|
|
66
66
|
const showTitle = footOverflow === 'title';
|
|
67
67
|
const showTooltip = footOverflow === true || footOverflow === 'tooltip';
|
|
68
|
-
|
|
68
|
+
const hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
69
69
|
const showResizable = (XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable));
|
|
70
70
|
const attrs = { colid };
|
|
71
71
|
const tfOns = {};
|
|
@@ -89,10 +89,6 @@ export default defineComponent({
|
|
|
89
89
|
type: renderType,
|
|
90
90
|
data: footerTableData
|
|
91
91
|
};
|
|
92
|
-
// 纵向虚拟滚动不支持动态行高
|
|
93
|
-
if (scrollXLoad && !hasEllipsis) {
|
|
94
|
-
showEllipsis = hasEllipsis = true;
|
|
95
|
-
}
|
|
96
92
|
if (showTitle || showTooltip || showAllTip) {
|
|
97
93
|
tfOns.onMouseenter = (evnt) => {
|
|
98
94
|
if (showTitle) {
|
|
@@ -151,7 +147,7 @@ export default defineComponent({
|
|
|
151
147
|
const isLastColumn = $columnIndex === tableColumn.length - 1;
|
|
152
148
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
153
149
|
let isVNPreEmptyStatus = false;
|
|
154
|
-
if (!isMergeCell) {
|
|
150
|
+
if (isOptimizeMode && !isMergeCell) {
|
|
155
151
|
if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
156
152
|
isVNPreEmptyStatus = true;
|
|
157
153
|
}
|
|
@@ -203,7 +199,7 @@ export default defineComponent({
|
|
|
203
199
|
]);
|
|
204
200
|
});
|
|
205
201
|
};
|
|
206
|
-
const renderHeads = (renderColumnList) => {
|
|
202
|
+
const renderHeads = (isOptimizeMode, renderColumnList) => {
|
|
207
203
|
const { fixedType, footerTableData } = props;
|
|
208
204
|
const { footerRowClassName, footerRowStyle } = tableProps;
|
|
209
205
|
const { isColLoading, isDragColMove } = tableReactData;
|
|
@@ -223,7 +219,7 @@ export default defineComponent({
|
|
|
223
219
|
],
|
|
224
220
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
225
221
|
}, {
|
|
226
|
-
default: () => renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex)
|
|
222
|
+
default: () => renderRows(isOptimizeMode, renderColumnList, footerTableData, row, $rowIndex, _rowIndex)
|
|
227
223
|
});
|
|
228
224
|
}
|
|
229
225
|
return h('tr', {
|
|
@@ -233,18 +229,18 @@ export default defineComponent({
|
|
|
233
229
|
footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
|
|
234
230
|
],
|
|
235
231
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
236
|
-
}, renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
|
|
232
|
+
}, renderRows(isOptimizeMode, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
|
|
237
233
|
});
|
|
238
234
|
};
|
|
239
235
|
const renderVN = () => {
|
|
240
236
|
const { fixedType, fixedColumn, tableColumn } = props;
|
|
241
237
|
const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
|
|
242
238
|
const { visibleColumn, fullColumnIdData } = tableInternalData;
|
|
243
|
-
const { isGroup, isColLoading, overflowX, scrollXLoad,
|
|
239
|
+
const { isGroup, isColLoading, overflowX, scrollXLoad, dragCol } = tableReactData;
|
|
244
240
|
let renderColumnList = tableColumn;
|
|
245
241
|
let isOptimizeMode = false;
|
|
246
242
|
// 如果是使用优化模式
|
|
247
|
-
if (scrollXLoad
|
|
243
|
+
if (scrollXLoad && allColumnFooterOverflow) {
|
|
248
244
|
if (spanMethod || footerSpanMethod) {
|
|
249
245
|
// 如果不支持优化模式
|
|
250
246
|
}
|
|
@@ -252,7 +248,7 @@ export default defineComponent({
|
|
|
252
248
|
isOptimizeMode = true;
|
|
253
249
|
}
|
|
254
250
|
}
|
|
255
|
-
if (!isColLoading && (fixedType || !overflowX)) {
|
|
251
|
+
if (!isOptimizeMode || (!isColLoading && (fixedType || !overflowX))) {
|
|
256
252
|
renderColumnList = visibleColumn;
|
|
257
253
|
}
|
|
258
254
|
if (fixedType) {
|
|
@@ -330,7 +326,7 @@ export default defineComponent({
|
|
|
330
326
|
*/
|
|
331
327
|
h('tfoot', {
|
|
332
328
|
ref: refFooterTFoot
|
|
333
|
-
}, renderHeads(renderColumnList))
|
|
329
|
+
}, renderHeads(isOptimizeMode, renderColumnList))
|
|
334
330
|
])
|
|
335
331
|
])
|
|
336
332
|
]);
|
package/es/table/src/header.js
CHANGED
|
@@ -57,10 +57,10 @@ export default defineComponent({
|
|
|
57
57
|
const isPadding = XEUtils.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
|
|
58
58
|
const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
59
59
|
const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
60
|
-
|
|
60
|
+
const showEllipsis = headOverflow === 'ellipsis';
|
|
61
61
|
const showTitle = headOverflow === 'title';
|
|
62
62
|
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
63
|
-
|
|
63
|
+
const hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
64
64
|
let hasFilter = false;
|
|
65
65
|
let firstFilterOption = null;
|
|
66
66
|
if (filters) {
|
|
@@ -69,7 +69,20 @@ export default defineComponent({
|
|
|
69
69
|
}
|
|
70
70
|
const columnIndex = colRest.index;
|
|
71
71
|
const _columnIndex = colRest._index;
|
|
72
|
-
const cellParams = {
|
|
72
|
+
const cellParams = {
|
|
73
|
+
$table: $xeTable,
|
|
74
|
+
$grid: $xeGrid,
|
|
75
|
+
$rowIndex,
|
|
76
|
+
column,
|
|
77
|
+
columnIndex,
|
|
78
|
+
$columnIndex,
|
|
79
|
+
_columnIndex,
|
|
80
|
+
firstFilterOption,
|
|
81
|
+
fixed: fixedType,
|
|
82
|
+
type: renderType,
|
|
83
|
+
isHidden: fixedHiddenColumn,
|
|
84
|
+
hasFilter
|
|
85
|
+
};
|
|
73
86
|
const thAttrs = {
|
|
74
87
|
colid,
|
|
75
88
|
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
@@ -79,10 +92,6 @@ export default defineComponent({
|
|
|
79
92
|
onClick: (evnt) => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
|
|
80
93
|
onDblclick: (evnt) => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
|
|
81
94
|
};
|
|
82
|
-
// 横向虚拟滚动不支持动态行高
|
|
83
|
-
if (scrollXLoad && !hasEllipsis) {
|
|
84
|
-
showEllipsis = hasEllipsis = true;
|
|
85
|
-
}
|
|
86
95
|
const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
|
|
87
96
|
let isDisabledDrag = false;
|
|
88
97
|
if (isColDragCell) {
|
|
@@ -105,7 +114,7 @@ export default defineComponent({
|
|
|
105
114
|
const showResizable = (XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable));
|
|
106
115
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
107
116
|
let isVNPreEmptyStatus = false;
|
|
108
|
-
if (!isGroup) {
|
|
117
|
+
if (isOptimizeMode && !isGroup) {
|
|
109
118
|
if (!dragCol || dragCol.id !== colid) {
|
|
110
119
|
if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
111
120
|
isVNPreEmptyStatus = true;
|
|
@@ -202,7 +211,7 @@ export default defineComponent({
|
|
|
202
211
|
const renderVN = () => {
|
|
203
212
|
const { fixedType, fixedColumn, tableColumn } = props;
|
|
204
213
|
const { mouseConfig, showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
|
|
205
|
-
const { isGroup, isColLoading, overflowX, scrollXLoad,
|
|
214
|
+
const { isGroup, isColLoading, overflowX, scrollXLoad, dragCol } = tableReactData;
|
|
206
215
|
const { visibleColumn, fullColumnIdData } = tableInternalData;
|
|
207
216
|
const mouseOpts = computeMouseOpts.value;
|
|
208
217
|
let renderHeaderList = headerColumn.value;
|
|
@@ -213,7 +222,7 @@ export default defineComponent({
|
|
|
213
222
|
}
|
|
214
223
|
else {
|
|
215
224
|
// 如果是使用优化模式
|
|
216
|
-
if (scrollXLoad
|
|
225
|
+
if (scrollXLoad && allColumnHeaderOverflow) {
|
|
217
226
|
if (spanMethod || footerSpanMethod) {
|
|
218
227
|
// 如果不支持优化模式
|
|
219
228
|
}
|
|
@@ -221,7 +230,7 @@ export default defineComponent({
|
|
|
221
230
|
isOptimizeMode = true;
|
|
222
231
|
}
|
|
223
232
|
}
|
|
224
|
-
if (!isColLoading && (fixedType || !overflowX)) {
|
|
233
|
+
if (!isOptimizeMode || (!isColLoading && (fixedType || !overflowX))) {
|
|
225
234
|
renderColumnList = visibleColumn;
|
|
226
235
|
}
|
|
227
236
|
if (fixedType) {
|
package/es/table/src/table.js
CHANGED
|
@@ -1963,7 +1963,7 @@ export default defineComponent({
|
|
|
1963
1963
|
};
|
|
1964
1964
|
const updateStyle = () => {
|
|
1965
1965
|
const { showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props;
|
|
1966
|
-
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, overflowY, scrollbarHeight, scrollXWidth, columnStore, editStore, isAllOverflow, expandColumn } = reactData;
|
|
1966
|
+
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, overflowY, scrollbarHeight, scrollXWidth, columnStore, editStore, isAllOverflow, expandColumn, isColLoading } = reactData;
|
|
1967
1967
|
const { visibleColumn, tableHeight, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData;
|
|
1968
1968
|
const el = refElem.value;
|
|
1969
1969
|
if (!el) {
|
|
@@ -2073,7 +2073,7 @@ export default defineComponent({
|
|
|
2073
2073
|
}
|
|
2074
2074
|
else {
|
|
2075
2075
|
// 如果是使用优化模式
|
|
2076
|
-
if (scrollXLoad
|
|
2076
|
+
if (scrollXLoad && allColumnHeaderOverflow) {
|
|
2077
2077
|
if (spanMethod || footerSpanMethod) {
|
|
2078
2078
|
// 如果不支持优化模式
|
|
2079
2079
|
}
|
|
@@ -2081,8 +2081,10 @@ export default defineComponent({
|
|
|
2081
2081
|
isOptimizeMode = true;
|
|
2082
2082
|
}
|
|
2083
2083
|
}
|
|
2084
|
-
if (fixedType) {
|
|
2084
|
+
if (!isOptimizeMode || (!isColLoading && (fixedType || !overflowX))) {
|
|
2085
2085
|
renderColumnList = visibleColumn;
|
|
2086
|
+
}
|
|
2087
|
+
if (fixedType) {
|
|
2086
2088
|
// 如果是使用优化模式
|
|
2087
2089
|
if (isOptimizeMode) {
|
|
2088
2090
|
renderColumnList = fixedColumn || [];
|
|
@@ -2174,7 +2176,7 @@ export default defineComponent({
|
|
|
2174
2176
|
let renderColumnList = tableColumn;
|
|
2175
2177
|
let isOptimizeMode = false;
|
|
2176
2178
|
// 如果是使用优化模式
|
|
2177
|
-
if (scrollXLoad
|
|
2179
|
+
if (scrollXLoad && allColumnFooterOverflow) {
|
|
2178
2180
|
if (spanMethod || footerSpanMethod) {
|
|
2179
2181
|
// 如果不支持优化模式
|
|
2180
2182
|
}
|
package/es/table/style.css
CHANGED
|
@@ -2493,11 +2493,6 @@
|
|
|
2493
2493
|
line-height: var(--vxe-ui-table-row-line-height);
|
|
2494
2494
|
text-align: left;
|
|
2495
2495
|
}
|
|
2496
|
-
.vxe-table--render-default .vxe-header--column.col--current,
|
|
2497
|
-
.vxe-table--render-default .vxe-body--column.col--current,
|
|
2498
|
-
.vxe-table--render-default .vxe-footer--column.col--current {
|
|
2499
|
-
background-color: var(--vxe-ui-table-column-current-background-color);
|
|
2500
|
-
}
|
|
2501
2496
|
.vxe-table--render-default .vxe-header--column.col--center,
|
|
2502
2497
|
.vxe-table--render-default .vxe-body--column.col--center,
|
|
2503
2498
|
.vxe-table--render-default .vxe-footer--column.col--center {
|
|
@@ -2529,6 +2524,18 @@
|
|
|
2529
2524
|
.vxe-table--render-default .vxe-body--row.row--stripe > .vxe-body--column {
|
|
2530
2525
|
background-color: var(--vxe-ui-table-row-striped-background-color);
|
|
2531
2526
|
}
|
|
2527
|
+
.vxe-table--render-default .vxe-header--column,
|
|
2528
|
+
.vxe-table--render-default .vxe-body--column,
|
|
2529
|
+
.vxe-table--render-default .vxe-footer--column {
|
|
2530
|
+
position: relative;
|
|
2531
|
+
line-height: var(--vxe-ui-table-row-line-height);
|
|
2532
|
+
text-align: left;
|
|
2533
|
+
}
|
|
2534
|
+
.vxe-table--render-default .vxe-header--column.col--current,
|
|
2535
|
+
.vxe-table--render-default .vxe-body--column.col--current,
|
|
2536
|
+
.vxe-table--render-default .vxe-footer--column.col--current {
|
|
2537
|
+
background-color: var(--vxe-ui-table-column-current-background-color);
|
|
2538
|
+
}
|
|
2532
2539
|
.vxe-table--render-default .vxe-body--row.row--radio > .vxe-body--column {
|
|
2533
2540
|
background-color: var(--vxe-ui-table-row-radio-checked-background-color);
|
|
2534
2541
|
}
|