vxe-table 4.9.34 → 4.9.35
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/render/index.js +44 -11
- package/es/table/src/body.js +17 -29
- package/es/table/src/footer.js +20 -21
- package/es/table/src/header.js +15 -8
- package/es/table/src/table.js +26 -24
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +125 -95
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/render/index.js +44 -11
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +17 -28
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +21 -22
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +15 -7
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +26 -25
- 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/render/index.ts +45 -11
- package/packages/table/src/body.ts +20 -28
- package/packages/table/src/footer.ts +21 -20
- package/packages/table/src/header.ts +14 -8
- package/packages/table/src/table.ts +28 -22
- /package/es/{iconfont.1735003904604.ttf → iconfont.1735027807086.ttf} +0 -0
- /package/es/{iconfont.1735003904604.woff → iconfont.1735027807086.woff} +0 -0
- /package/es/{iconfont.1735003904604.woff2 → iconfont.1735027807086.woff2} +0 -0
- /package/lib/{iconfont.1735003904604.ttf → iconfont.1735027807086.ttf} +0 -0
- /package/lib/{iconfont.1735003904604.woff → iconfont.1735027807086.woff} +0 -0
- /package/lib/{iconfont.1735003904604.woff2 → iconfont.1735027807086.woff2} +0 -0
package/es/table/src/body.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, inject, nextTick, onBeforeUnmount, onMounted, onUnmounted } from 'vue';
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import { VxeUI } from '../../ui';
|
|
4
4
|
import { mergeBodyMethod, getRowid, getRefElem } from './util';
|
|
@@ -28,7 +28,7 @@ export default defineComponent({
|
|
|
28
28
|
const xesize = inject('xesize', null);
|
|
29
29
|
const { xID, props: tableProps, context: tableContext, reactData: tableReactData, internalData: tableInternalData } = $xeTable;
|
|
30
30
|
const { refTableBody, refTableHeader, refTableFooter, refTableLeftBody, refTableRightBody, refScrollXHandleElem, refScrollYHandleElem } = $xeTable.getRefMaps();
|
|
31
|
-
const { computeEditOpts, computeMouseOpts, computeAreaOpts, computeSYOpts, computeEmptyOpts,
|
|
31
|
+
const { computeEditOpts, computeMouseOpts, computeAreaOpts, computeSYOpts, computeEmptyOpts, computeTooltipOpts, computeRadioOpts, computeExpandOpts, computeTreeOpts, computeCheckboxOpts, computeCellOpts, computeValidOpts, computeRowOpts, computeColumnOpts, computeRowDragOpts, computeColumnDragOpts } = $xeTable.getComputeMaps();
|
|
32
32
|
const refElem = ref();
|
|
33
33
|
const refBodyTable = ref();
|
|
34
34
|
const refBodyColgroup = ref();
|
|
@@ -700,41 +700,29 @@ export default defineComponent({
|
|
|
700
700
|
elemStore[`${prefix}emptyBlock`] = null;
|
|
701
701
|
});
|
|
702
702
|
const renderVN = () => {
|
|
703
|
-
|
|
704
|
-
const {
|
|
705
|
-
const { tableData,
|
|
703
|
+
const { fixedColumn, fixedType, tableColumn } = props;
|
|
704
|
+
const { showOverflow: allColumnOverflow, spanMethod, footerSpanMethod, mouseConfig } = tableProps;
|
|
705
|
+
const { tableData, scrollXLoad, scrollYLoad, isAllOverflow, isDragRowMove, expandColumn } = tableReactData;
|
|
706
706
|
const { visibleColumn } = tableInternalData;
|
|
707
707
|
const { slots } = tableContext;
|
|
708
708
|
const rowOpts = computeRowOpts.value;
|
|
709
709
|
const sYOpts = computeSYOpts.value;
|
|
710
710
|
const emptyOpts = computeEmptyOpts.value;
|
|
711
|
-
const keyboardOpts = computeKeyboardOpts.value;
|
|
712
711
|
const mouseOpts = computeMouseOpts.value;
|
|
713
712
|
const rowDragOpts = computeRowDragOpts.value;
|
|
714
|
-
|
|
715
|
-
// const isMergeRightFixedExceeded = computeIsMergeRightFixedExceeded.value
|
|
716
|
-
// 如果是使用优化模式
|
|
713
|
+
let renderColumnList = tableColumn;
|
|
717
714
|
if (fixedType) {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
715
|
+
renderColumnList = visibleColumn;
|
|
716
|
+
// 如果是使用优化模式
|
|
717
|
+
if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
|
|
718
|
+
// 如果不支持优化模式
|
|
719
|
+
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
720
|
+
renderColumnList = visibleColumn;
|
|
722
721
|
}
|
|
723
722
|
else {
|
|
724
|
-
|
|
725
|
-
// 检查固定列是否被合并,合并范围是否超出固定列
|
|
726
|
-
// if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') {
|
|
727
|
-
// tableColumn = fixedColumn
|
|
728
|
-
// } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') {
|
|
729
|
-
// tableColumn = fixedColumn
|
|
730
|
-
// } else {
|
|
731
|
-
// tableColumn = visibleColumn
|
|
732
|
-
// }
|
|
723
|
+
renderColumnList = fixedColumn || [];
|
|
733
724
|
}
|
|
734
725
|
}
|
|
735
|
-
else {
|
|
736
|
-
tableColumn = visibleColumn;
|
|
737
|
-
}
|
|
738
726
|
}
|
|
739
727
|
let emptyContent;
|
|
740
728
|
const emptySlot = slots ? slots.empty : null;
|
|
@@ -759,7 +747,7 @@ export default defineComponent({
|
|
|
759
747
|
}
|
|
760
748
|
return h('div', Object.assign({ ref: refElem, class: ['vxe-table--body-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'], xid: xID }, ons), [
|
|
761
749
|
fixedType
|
|
762
|
-
?
|
|
750
|
+
? renderEmptyElement($xeTable)
|
|
763
751
|
: h('div', {
|
|
764
752
|
ref: refBodyXSpace,
|
|
765
753
|
class: 'vxe-body--x-space'
|
|
@@ -781,7 +769,7 @@ export default defineComponent({
|
|
|
781
769
|
*/
|
|
782
770
|
h('colgroup', {
|
|
783
771
|
ref: refBodyColgroup
|
|
784
|
-
},
|
|
772
|
+
}, renderColumnList.map((column, $columnIndex) => {
|
|
785
773
|
return h('col', {
|
|
786
774
|
name: column.id,
|
|
787
775
|
key: $columnIndex
|
|
@@ -796,11 +784,11 @@ export default defineComponent({
|
|
|
796
784
|
name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`,
|
|
797
785
|
tag: 'tbody'
|
|
798
786
|
}, {
|
|
799
|
-
default: () => renderRows(fixedType, tableData,
|
|
787
|
+
default: () => renderRows(fixedType, tableData, renderColumnList)
|
|
800
788
|
})
|
|
801
789
|
: h('tbody', {
|
|
802
790
|
ref: refBodyTBody
|
|
803
|
-
}, renderRows(fixedType, tableData,
|
|
791
|
+
}, renderRows(fixedType, tableData, renderColumnList))
|
|
804
792
|
]),
|
|
805
793
|
h('div', {
|
|
806
794
|
class: 'vxe-table--checkbox-range'
|
package/es/table/src/footer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, inject, nextTick, onMounted, onUnmounted } from 'vue';
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import { VxeUI } from '../../ui';
|
|
4
4
|
import { updateCellTitle, getPropClass, setScrollLeft } from '../../ui/src/dom';
|
|
5
|
-
const { renderer } = VxeUI;
|
|
5
|
+
const { renderer, renderEmptyElement } = VxeUI;
|
|
6
6
|
const renderType = 'footer';
|
|
7
7
|
function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
|
|
8
8
|
for (let mIndex = 0; mIndex < mergeFooterList.length; mIndex++) {
|
|
@@ -211,8 +211,8 @@ export default defineComponent({
|
|
|
211
211
|
]
|
|
212
212
|
: []);
|
|
213
213
|
};
|
|
214
|
-
const renderHeads = (
|
|
215
|
-
const { fixedType,
|
|
214
|
+
const renderHeads = (renderColumnList) => {
|
|
215
|
+
const { fixedType, footerTableData } = props;
|
|
216
216
|
const { footerRowClassName, footerRowStyle } = tableProps;
|
|
217
217
|
const { isDragColMove } = tableReactData;
|
|
218
218
|
const columnOpts = computeColumnOpts.value;
|
|
@@ -231,7 +231,7 @@ export default defineComponent({
|
|
|
231
231
|
],
|
|
232
232
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
233
233
|
}, {
|
|
234
|
-
default: () => renderRows(
|
|
234
|
+
default: () => renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex)
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
237
|
return h('tr', {
|
|
@@ -241,28 +241,27 @@ export default defineComponent({
|
|
|
241
241
|
footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
|
|
242
242
|
],
|
|
243
243
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
244
|
-
}, renderRows(
|
|
244
|
+
}, renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
|
|
245
245
|
});
|
|
246
246
|
};
|
|
247
247
|
const renderVN = () => {
|
|
248
|
-
|
|
249
|
-
const { footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
|
|
248
|
+
const { fixedType, fixedColumn, tableColumn } = props;
|
|
249
|
+
const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
|
|
250
250
|
const { visibleColumn } = tableInternalData;
|
|
251
|
-
const {
|
|
252
|
-
|
|
251
|
+
const { scrollbarWidth } = tableReactData;
|
|
252
|
+
let renderColumnList = tableColumn;
|
|
253
253
|
if (fixedType) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
renderColumnList = visibleColumn;
|
|
255
|
+
// 如果是使用优化模式
|
|
256
|
+
if (allColumnFooterOverflow) {
|
|
257
|
+
// 如果不支持优化模式
|
|
258
|
+
if (spanMethod || footerSpanMethod) {
|
|
259
|
+
renderColumnList = visibleColumn;
|
|
258
260
|
}
|
|
259
261
|
else {
|
|
260
|
-
|
|
262
|
+
renderColumnList = fixedColumn || [];
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
|
-
else {
|
|
264
|
-
tableColumn = visibleColumn;
|
|
265
|
-
}
|
|
266
265
|
}
|
|
267
266
|
const ons = {};
|
|
268
267
|
if (!fixedType) {
|
|
@@ -270,7 +269,7 @@ export default defineComponent({
|
|
|
270
269
|
}
|
|
271
270
|
return h('div', Object.assign({ ref: refElem, class: ['vxe-table--footer-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'], xid: xID }, ons), [
|
|
272
271
|
fixedType
|
|
273
|
-
?
|
|
272
|
+
? renderEmptyElement($xeTable)
|
|
274
273
|
: h('div', {
|
|
275
274
|
ref: refFooterXSpace,
|
|
276
275
|
class: 'vxe-body--x-space'
|
|
@@ -288,7 +287,7 @@ export default defineComponent({
|
|
|
288
287
|
*/
|
|
289
288
|
h('colgroup', {
|
|
290
289
|
ref: refFooterColgroup
|
|
291
|
-
},
|
|
290
|
+
}, renderColumnList.map((column, $columnIndex) => {
|
|
292
291
|
return h('col', {
|
|
293
292
|
name: column.id,
|
|
294
293
|
key: $columnIndex
|
|
@@ -305,7 +304,7 @@ export default defineComponent({
|
|
|
305
304
|
*/
|
|
306
305
|
h('tfoot', {
|
|
307
306
|
ref: refFooterTFoot
|
|
308
|
-
}, renderHeads(
|
|
307
|
+
}, renderHeads(renderColumnList))
|
|
309
308
|
])
|
|
310
309
|
]);
|
|
311
310
|
};
|
package/es/table/src/header.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, inject, nextTick, watch, onMounted, onUnmounted } from 'vue';
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import { VxeUI } from '../../ui';
|
|
4
4
|
import { convertHeaderColumnToRows, getColReMinWidth } from './util';
|
|
5
5
|
import { hasClass, getOffsetPos, addClass, removeClass } from '../../ui/src/dom';
|
|
6
|
-
const { renderer } = VxeUI;
|
|
6
|
+
const { renderer, renderEmptyElement } = VxeUI;
|
|
7
7
|
const renderType = 'header';
|
|
8
8
|
export default defineComponent({
|
|
9
9
|
name: 'VxeTableHeader',
|
|
@@ -290,8 +290,8 @@ export default defineComponent({
|
|
|
290
290
|
};
|
|
291
291
|
const renderVN = () => {
|
|
292
292
|
const { fixedType, fixedColumn, tableColumn } = props;
|
|
293
|
-
const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
|
|
294
|
-
const { isGroup,
|
|
293
|
+
const { showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps;
|
|
294
|
+
const { isGroup, scrollbarWidth } = tableReactData;
|
|
295
295
|
const { visibleColumn } = tableInternalData;
|
|
296
296
|
let headerGroups = headerColumn.value;
|
|
297
297
|
let renderColumnList = tableColumn;
|
|
@@ -299,10 +299,17 @@ export default defineComponent({
|
|
|
299
299
|
renderColumnList = visibleColumn;
|
|
300
300
|
}
|
|
301
301
|
else {
|
|
302
|
-
// 如果是使用优化模式
|
|
303
302
|
if (fixedType) {
|
|
304
|
-
|
|
305
|
-
|
|
303
|
+
renderColumnList = visibleColumn;
|
|
304
|
+
// 如果是使用优化模式
|
|
305
|
+
if (allColumnHeaderOverflow) {
|
|
306
|
+
// 如果不支持优化模式
|
|
307
|
+
if (spanMethod || footerSpanMethod) {
|
|
308
|
+
renderColumnList = visibleColumn;
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
renderColumnList = fixedColumn || [];
|
|
312
|
+
}
|
|
306
313
|
}
|
|
307
314
|
}
|
|
308
315
|
headerGroups = [renderColumnList];
|
|
@@ -313,7 +320,7 @@ export default defineComponent({
|
|
|
313
320
|
xid: xID
|
|
314
321
|
}, [
|
|
315
322
|
fixedType
|
|
316
|
-
?
|
|
323
|
+
? renderEmptyElement($xeTable)
|
|
317
324
|
: h('div', {
|
|
318
325
|
ref: refHeaderXSpace,
|
|
319
326
|
class: 'vxe-body--x-space'
|
package/es/table/src/table.js
CHANGED
|
@@ -1637,14 +1637,13 @@ export default defineComponent({
|
|
|
1637
1637
|
updateAfterDataIndex();
|
|
1638
1638
|
};
|
|
1639
1639
|
const updateStyle = () => {
|
|
1640
|
-
const { border, showFooter, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod
|
|
1641
|
-
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, scrollbarHeight, columnStore, editStore,
|
|
1640
|
+
const { border, showFooter, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props;
|
|
1641
|
+
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, scrollbarHeight, columnStore, editStore, isAllOverflow, expandColumn } = reactData;
|
|
1642
1642
|
let { visibleColumn, fullColumnIdData, tableHeight, tableWidth, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData;
|
|
1643
1643
|
const containerList = ['main', 'left', 'right'];
|
|
1644
1644
|
const emptyPlaceholderElem = refEmptyPlaceholder.value;
|
|
1645
1645
|
const cellOffsetWidth = computeCellOffsetWidth.value;
|
|
1646
1646
|
const mouseOpts = computeMouseOpts.value;
|
|
1647
|
-
const keyboardOpts = computeKeyboardOpts.value;
|
|
1648
1647
|
const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper']);
|
|
1649
1648
|
if (emptyPlaceholderElem) {
|
|
1650
1649
|
emptyPlaceholderElem.style.top = `${headerHeight}px`;
|
|
@@ -1701,10 +1700,17 @@ export default defineComponent({
|
|
|
1701
1700
|
renderColumnList = visibleColumn;
|
|
1702
1701
|
}
|
|
1703
1702
|
else {
|
|
1704
|
-
// 如果是使用优化模式
|
|
1705
1703
|
if (fixedType) {
|
|
1706
|
-
|
|
1707
|
-
|
|
1704
|
+
renderColumnList = visibleColumn;
|
|
1705
|
+
// 如果是使用优化模式
|
|
1706
|
+
if (allColumnHeaderOverflow) {
|
|
1707
|
+
// 如果不支持优化模式
|
|
1708
|
+
if (spanMethod || footerSpanMethod) {
|
|
1709
|
+
renderColumnList = visibleColumn;
|
|
1710
|
+
}
|
|
1711
|
+
else {
|
|
1712
|
+
renderColumnList = fixedColumn || [];
|
|
1713
|
+
}
|
|
1708
1714
|
}
|
|
1709
1715
|
}
|
|
1710
1716
|
}
|
|
@@ -1783,20 +1789,18 @@ export default defineComponent({
|
|
|
1783
1789
|
}
|
|
1784
1790
|
let tWidth = tableWidth;
|
|
1785
1791
|
let renderColumnList = tableColumn;
|
|
1786
|
-
// 如果是使用优化模式
|
|
1787
1792
|
if (fixedType) {
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1793
|
+
renderColumnList = visibleColumn;
|
|
1794
|
+
// 如果是使用优化模式
|
|
1795
|
+
if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
|
|
1796
|
+
// 如果不支持优化模式
|
|
1797
|
+
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
1798
|
+
renderColumnList = visibleColumn;
|
|
1792
1799
|
}
|
|
1793
1800
|
else {
|
|
1794
|
-
renderColumnList =
|
|
1801
|
+
renderColumnList = fixedColumn || [];
|
|
1795
1802
|
}
|
|
1796
1803
|
}
|
|
1797
|
-
else {
|
|
1798
|
-
renderColumnList = visibleColumn;
|
|
1799
|
-
}
|
|
1800
1804
|
}
|
|
1801
1805
|
tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
|
|
1802
1806
|
if (tableElem) {
|
|
@@ -1811,20 +1815,18 @@ export default defineComponent({
|
|
|
1811
1815
|
else if (layout === 'footer') {
|
|
1812
1816
|
let tWidth = tableWidth;
|
|
1813
1817
|
let renderColumnList = tableColumn;
|
|
1814
|
-
// 如果是使用优化模式
|
|
1815
1818
|
if (fixedType) {
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1819
|
+
renderColumnList = visibleColumn;
|
|
1820
|
+
// 如果是使用优化模式
|
|
1821
|
+
if (allColumnFooterOverflow) {
|
|
1822
|
+
// 如果不支持优化模式
|
|
1823
|
+
if (spanMethod || footerSpanMethod) {
|
|
1824
|
+
renderColumnList = visibleColumn;
|
|
1820
1825
|
}
|
|
1821
1826
|
else {
|
|
1822
|
-
renderColumnList =
|
|
1827
|
+
renderColumnList = fixedColumn || [];
|
|
1823
1828
|
}
|
|
1824
1829
|
}
|
|
1825
|
-
else {
|
|
1826
|
-
renderColumnList = visibleColumn;
|
|
1827
|
-
}
|
|
1828
1830
|
}
|
|
1829
1831
|
tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
|
|
1830
1832
|
if (isNodeElement(wrapperElem)) {
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED