vxe-table 4.17.0-beta.8 → 4.17.0
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/module/keyboard/hook.js +4 -26
- package/es/table/module/menu/hook.js +2 -2
- package/es/table/src/body.js +3 -0
- package/es/table/src/footer.js +2 -0
- package/es/table/src/header.js +3 -0
- package/es/table/src/table.js +73 -15
- package/es/table/src/util.js +3 -3
- package/es/table/style.css +19 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/utils.js +6 -5
- package/es/vxe-table/style.css +19 -0
- package/es/vxe-table/style.min.css +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +41 -48
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/keyboard/hook.js +3 -28
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/module/menu/hook.js +2 -0
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/src/body.js +3 -0
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +2 -0
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +3 -0
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +12 -7
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +3 -3
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +19 -0
- package/lib/table/style/style.min.css +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/lib/ui/src/utils.js +8 -5
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/vxe-table/style/style.css +19 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/keyboard/hook.ts +4 -28
- package/packages/table/module/menu/hook.ts +2 -2
- package/packages/table/src/body.ts +3 -0
- package/packages/table/src/footer.ts +2 -0
- package/packages/table/src/header.ts +3 -0
- package/packages/table/src/table.ts +71 -15
- package/packages/table/src/util.ts +3 -3
- package/packages/ui/src/utils.ts +7 -5
- package/styles/components/table.scss +38 -0
- /package/es/{iconfont.1760580064178.ttf → iconfont.1760925752102.ttf} +0 -0
- /package/es/{iconfont.1760580064178.woff → iconfont.1760925752102.woff} +0 -0
- /package/es/{iconfont.1760580064178.woff2 → iconfont.1760925752102.woff2} +0 -0
- /package/lib/{iconfont.1760580064178.ttf → iconfont.1760925752102.ttf} +0 -0
- /package/lib/{iconfont.1760580064178.woff → iconfont.1760925752102.woff} +0 -0
- /package/lib/{iconfont.1760580064178.woff2 → iconfont.1760925752102.woff2} +0 -0
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
import XEUtils from 'xe-utils';
|
|
2
2
|
import { VxeUI } from '../../../ui';
|
|
3
3
|
import { getRefElem } from '../../src/util';
|
|
4
|
-
import {
|
|
4
|
+
import { getAbsolutePos, addClass, removeClass, hasControlKey } from '../../../ui/src/dom';
|
|
5
5
|
const { hooks } = VxeUI;
|
|
6
|
-
const browseObj = XEUtils.browse();
|
|
7
|
-
function getTargetOffset(target, container) {
|
|
8
|
-
let offsetTop = 0;
|
|
9
|
-
let offsetLeft = 0;
|
|
10
|
-
const triggerCheckboxLabel = !browseObj.firefox && hasClass(target, 'vxe-checkbox--label');
|
|
11
|
-
if (triggerCheckboxLabel) {
|
|
12
|
-
const checkboxLabelStyle = getComputedStyle(target);
|
|
13
|
-
offsetTop -= XEUtils.toNumber(checkboxLabelStyle.paddingTop);
|
|
14
|
-
offsetLeft -= XEUtils.toNumber(checkboxLabelStyle.paddingLeft);
|
|
15
|
-
}
|
|
16
|
-
while (target && target !== container) {
|
|
17
|
-
offsetTop += target.offsetTop;
|
|
18
|
-
offsetLeft += target.offsetLeft;
|
|
19
|
-
target = target.offsetParent;
|
|
20
|
-
if (triggerCheckboxLabel) {
|
|
21
|
-
const checkboxStyle = getComputedStyle(target);
|
|
22
|
-
offsetTop -= XEUtils.toNumber(checkboxStyle.paddingTop);
|
|
23
|
-
offsetLeft -= XEUtils.toNumber(checkboxStyle.paddingLeft);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return { offsetTop, offsetLeft };
|
|
27
|
-
}
|
|
28
6
|
hooks.add('tableKeyboardModule', {
|
|
29
7
|
setupTable($xeTable) {
|
|
30
8
|
const { props, reactData, internalData } = $xeTable;
|
|
@@ -117,6 +95,7 @@ hooks.add('tableKeyboardModule', {
|
|
|
117
95
|
if (!bodyWrapperElem) {
|
|
118
96
|
return;
|
|
119
97
|
}
|
|
98
|
+
const bodyRect = bodyWrapperElem.getBoundingClientRect();
|
|
120
99
|
const el = refElem.value;
|
|
121
100
|
const disX = evnt.clientX;
|
|
122
101
|
const disY = evnt.clientY;
|
|
@@ -125,9 +104,8 @@ hooks.add('tableKeyboardModule', {
|
|
|
125
104
|
const selectRecords = $xeTable.getCheckboxRecords();
|
|
126
105
|
let lastRangeRows = [];
|
|
127
106
|
const marginSize = 1;
|
|
128
|
-
const
|
|
129
|
-
const
|
|
130
|
-
const startLeft = offsetRest.offsetLeft + evnt.offsetX;
|
|
107
|
+
const startTop = evnt.clientY - bodyRect.y + bodyWrapperElem.scrollTop;
|
|
108
|
+
const startLeft = evnt.clientX - bodyRect.x + bodyWrapperElem.scrollLeft;
|
|
131
109
|
const startScrollTop = bodyWrapperElem.scrollTop;
|
|
132
110
|
const rowHeight = trElem.offsetHeight;
|
|
133
111
|
const trRect = trElem.getBoundingClientRect();
|
|
@@ -171,7 +171,7 @@ hooks.add('tableMenuModule', {
|
|
|
171
171
|
}
|
|
172
172
|
if (internalData._keyCtx) {
|
|
173
173
|
const type = 'body';
|
|
174
|
-
const params = { type, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, keyboard: true, columns: visibleColumn.slice(0), $event: evnt };
|
|
174
|
+
const params = { source: 'table', type, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, keyboard: true, columns: visibleColumn.slice(0), $event: evnt };
|
|
175
175
|
// 如果开启单元格区域
|
|
176
176
|
if (mouseConfig && mouseOpts.area) {
|
|
177
177
|
const activeArea = $xeTable.getActiveCellArea();
|
|
@@ -199,7 +199,7 @@ hooks.add('tableMenuModule', {
|
|
|
199
199
|
// target=td|th,直接向上找 table 去匹配即可
|
|
200
200
|
return target.parentNode.parentNode.parentNode.getAttribute('xid') === xID;
|
|
201
201
|
});
|
|
202
|
-
const params = { type: layout, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, columns: visibleColumn.slice(0), $event: evnt };
|
|
202
|
+
const params = { source: 'table', type: layout, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, columns: visibleColumn.slice(0), $event: evnt };
|
|
203
203
|
if (columnTargetNode.flag) {
|
|
204
204
|
const cell = columnTargetNode.targetElem;
|
|
205
205
|
const columnNodeRest = $xeTable.getColumnNode(cell);
|
package/es/table/src/body.js
CHANGED
|
@@ -7,6 +7,7 @@ import { updateCellTitle, getPropClass } from '../../ui/src/dom';
|
|
|
7
7
|
import { isEnableConf } from '../../ui/src/utils';
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
9
9
|
const { getI18n, renderer, renderEmptyElement } = VxeUI;
|
|
10
|
+
const sourceType = 'table';
|
|
10
11
|
const renderType = 'body';
|
|
11
12
|
export default defineVxeComponent({
|
|
12
13
|
name: 'VxeTableBody',
|
|
@@ -149,6 +150,7 @@ export default defineVxeComponent({
|
|
|
149
150
|
$columnIndex,
|
|
150
151
|
_columnIndex,
|
|
151
152
|
fixed: fixedType,
|
|
153
|
+
source: sourceType,
|
|
152
154
|
type: renderType,
|
|
153
155
|
isHidden: !!fixedHiddenColumn,
|
|
154
156
|
level: rowLevel,
|
|
@@ -569,6 +571,7 @@ export default defineVxeComponent({
|
|
|
569
571
|
$columnIndex,
|
|
570
572
|
_columnIndex,
|
|
571
573
|
fixed: fixedType,
|
|
574
|
+
source: sourceType,
|
|
572
575
|
type: renderType,
|
|
573
576
|
level: rowLevel,
|
|
574
577
|
row,
|
package/es/table/src/footer.js
CHANGED
|
@@ -5,6 +5,7 @@ import { VxeUI } from '../../ui';
|
|
|
5
5
|
import { updateCellTitle, getPropClass } from '../../ui/src/dom';
|
|
6
6
|
import { getCalcHeight } from './util';
|
|
7
7
|
const { renderer, renderEmptyElement } = VxeUI;
|
|
8
|
+
const sourceType = 'table';
|
|
8
9
|
const renderType = 'footer';
|
|
9
10
|
export default defineVxeComponent({
|
|
10
11
|
name: 'VxeTableFooter',
|
|
@@ -88,6 +89,7 @@ export default defineVxeComponent({
|
|
|
88
89
|
itemIndex,
|
|
89
90
|
items: row,
|
|
90
91
|
fixed: fixedType,
|
|
92
|
+
source: sourceType,
|
|
91
93
|
type: renderType,
|
|
92
94
|
data: footerTableData
|
|
93
95
|
};
|
package/es/table/src/header.js
CHANGED
|
@@ -6,6 +6,7 @@ import { isEnableConf } from '../../ui/src/utils';
|
|
|
6
6
|
import { getCalcHeight, convertHeaderColumnToRows, convertHeaderToGridRows } from './util';
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
8
8
|
const { renderer, renderEmptyElement } = VxeUI;
|
|
9
|
+
const sourceType = 'table';
|
|
9
10
|
const renderType = 'header';
|
|
10
11
|
function getColumnFirstChild(column) {
|
|
11
12
|
const { children } = column;
|
|
@@ -109,6 +110,7 @@ export default defineVxeComponent({
|
|
|
109
110
|
_columnIndex,
|
|
110
111
|
firstFilterOption: firstFilterOption,
|
|
111
112
|
fixed: fixedType,
|
|
113
|
+
source: sourceType,
|
|
112
114
|
type: renderType,
|
|
113
115
|
isHidden: fixedHiddenColumn,
|
|
114
116
|
hasFilter
|
|
@@ -286,6 +288,7 @@ export default defineVxeComponent({
|
|
|
286
288
|
_columnIndex,
|
|
287
289
|
option: firstFilterOption,
|
|
288
290
|
fixed: fixedType,
|
|
291
|
+
source: sourceType,
|
|
289
292
|
type: renderType,
|
|
290
293
|
isHidden: fixedHiddenColumn,
|
|
291
294
|
hasFilter
|
package/es/table/src/table.js
CHANGED
|
@@ -413,13 +413,23 @@ export default defineVxeComponent({
|
|
|
413
413
|
const computeScrollbarOpts = computed(() => {
|
|
414
414
|
return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
|
|
415
415
|
});
|
|
416
|
-
const
|
|
416
|
+
const computeScrollbarXOpts = computed(() => {
|
|
417
|
+
var _a;
|
|
417
418
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
418
|
-
return
|
|
419
|
+
return Object.assign({}, scrollbarOpts.x, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.x) || {});
|
|
419
420
|
});
|
|
420
|
-
const
|
|
421
|
+
const computeScrollbarYOpts = computed(() => {
|
|
422
|
+
var _a;
|
|
421
423
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
422
|
-
return
|
|
424
|
+
return Object.assign({}, scrollbarOpts.y, ((_a = props.scrollbarConfig) === null || _a === void 0 ? void 0 : _a.y) || {});
|
|
425
|
+
});
|
|
426
|
+
const computeScrollbarXToTop = computed(() => {
|
|
427
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
428
|
+
return scrollbarXOpts.position === 'top';
|
|
429
|
+
});
|
|
430
|
+
const computeScrollbarYToLeft = computed(() => {
|
|
431
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
432
|
+
return scrollbarYOpts.position === 'left';
|
|
423
433
|
});
|
|
424
434
|
const computeScrollYThreshold = computed(() => {
|
|
425
435
|
const virtualYOpts = computeVirtualYOpts.value;
|
|
@@ -770,6 +780,8 @@ export default defineVxeComponent({
|
|
|
770
780
|
computeVirtualXOpts,
|
|
771
781
|
computeVirtualYOpts,
|
|
772
782
|
computeScrollbarOpts,
|
|
783
|
+
computeScrollbarXOpts,
|
|
784
|
+
computeScrollbarYOpts,
|
|
773
785
|
computeScrollbarXToTop,
|
|
774
786
|
computeScrollbarYToLeft,
|
|
775
787
|
computeColumnOpts,
|
|
@@ -2333,7 +2345,6 @@ export default defineVxeComponent({
|
|
|
2333
2345
|
emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
|
|
2334
2346
|
}
|
|
2335
2347
|
const scrollbarXConf = scrollbarOpts.x || {};
|
|
2336
|
-
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
2337
2348
|
const scrollbarYConf = scrollbarOpts.y || {};
|
|
2338
2349
|
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
2339
2350
|
let xScrollbarVisible = overflowX ? 'visible' : 'hidden';
|
|
@@ -2383,16 +2394,31 @@ export default defineVxeComponent({
|
|
|
2383
2394
|
}
|
|
2384
2395
|
const xWrapperEl = refScrollXWrapperElem.value;
|
|
2385
2396
|
if (xWrapperEl) {
|
|
2386
|
-
xWrapperEl.style.left = scrollbarXToTop ? `${osbWidth}px` : '';
|
|
2387
2397
|
xWrapperEl.style.width = `${el.clientWidth - osbWidth}px`;
|
|
2398
|
+
if (scrollbarYToLeft) {
|
|
2399
|
+
xWrapperEl.style.left = `${osbWidth}px`;
|
|
2400
|
+
}
|
|
2401
|
+
else {
|
|
2402
|
+
xWrapperEl.style.left = '';
|
|
2403
|
+
}
|
|
2388
2404
|
}
|
|
2389
2405
|
if (xLeftCornerEl) {
|
|
2390
|
-
|
|
2391
|
-
|
|
2406
|
+
if (scrollbarYToLeft) {
|
|
2407
|
+
xLeftCornerEl.style.width = `${osbWidth}px`;
|
|
2408
|
+
xLeftCornerEl.style.display = overflowY && osbWidth ? 'block' : '';
|
|
2409
|
+
}
|
|
2410
|
+
else {
|
|
2411
|
+
xLeftCornerEl.style.display = '';
|
|
2412
|
+
}
|
|
2392
2413
|
}
|
|
2393
2414
|
if (xRightCornerEl) {
|
|
2394
|
-
|
|
2395
|
-
|
|
2415
|
+
if (scrollbarYToLeft) {
|
|
2416
|
+
xRightCornerEl.style.display = '';
|
|
2417
|
+
}
|
|
2418
|
+
else {
|
|
2419
|
+
xRightCornerEl.style.width = `${osbWidth}px`;
|
|
2420
|
+
xRightCornerEl.style.display = xScrollbarVisible === 'visible' ? 'block' : '';
|
|
2421
|
+
}
|
|
2396
2422
|
}
|
|
2397
2423
|
const scrollYVirtualEl = refScrollYVirtualElem.value;
|
|
2398
2424
|
if (scrollYVirtualEl) {
|
|
@@ -3970,8 +3996,10 @@ export default defineVxeComponent({
|
|
|
3970
3996
|
updateAfterDataIndex();
|
|
3971
3997
|
return nextTick();
|
|
3972
3998
|
}).then(() => {
|
|
3999
|
+
updateTreeLineStyle();
|
|
3973
4000
|
return handleLazyRecalculate(true, true, true);
|
|
3974
4001
|
}).then(() => {
|
|
4002
|
+
updateTreeLineStyle();
|
|
3975
4003
|
setTimeout(() => {
|
|
3976
4004
|
$xeTable.updateCellAreas();
|
|
3977
4005
|
}, 30);
|
|
@@ -4329,6 +4357,9 @@ export default defineVxeComponent({
|
|
|
4329
4357
|
}
|
|
4330
4358
|
}
|
|
4331
4359
|
};
|
|
4360
|
+
/**
|
|
4361
|
+
* 更新展开行样式
|
|
4362
|
+
*/
|
|
4332
4363
|
const updateRowExpandStyle = () => {
|
|
4333
4364
|
const { expandColumn, scrollYLoad, scrollYTop, isScrollYBig } = reactData;
|
|
4334
4365
|
const expandOpts = computeExpandOpts.value;
|
|
@@ -4384,6 +4415,12 @@ export default defineVxeComponent({
|
|
|
4384
4415
|
}
|
|
4385
4416
|
}
|
|
4386
4417
|
};
|
|
4418
|
+
/**
|
|
4419
|
+
* 更新树连接线样式
|
|
4420
|
+
*/
|
|
4421
|
+
const updateTreeLineStyle = () => {
|
|
4422
|
+
// 待优化
|
|
4423
|
+
};
|
|
4387
4424
|
const handleRowExpandScroll = () => {
|
|
4388
4425
|
const { elemStore } = internalData;
|
|
4389
4426
|
const rowExpandEl = refRowExpandElem.value;
|
|
@@ -11745,14 +11782,24 @@ export default defineVxeComponent({
|
|
|
11745
11782
|
* 如果宽度足够情况下,则不需要渲染固定列
|
|
11746
11783
|
* @param {String} fixedType 固定列类型
|
|
11747
11784
|
*/
|
|
11748
|
-
const
|
|
11785
|
+
const renderViewFixed = (fixedType) => {
|
|
11749
11786
|
const { showHeader, showFooter } = props;
|
|
11750
11787
|
const { tableData, tableColumn, tableGroupColumn, columnStore, footerTableData } = reactData;
|
|
11788
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
11789
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
11790
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
11791
|
+
const { overscrollBehavior: overscrollXBehavior } = scrollbarXOpts;
|
|
11792
|
+
const { overscrollBehavior: overscrollYBehavior } = scrollbarYOpts;
|
|
11751
11793
|
const isFixedLeft = fixedType === 'left';
|
|
11752
11794
|
const fixedColumn = isFixedLeft ? columnStore.leftList : columnStore.rightList;
|
|
11795
|
+
const osXBehavior = XEUtils.eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
|
|
11796
|
+
const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
11753
11797
|
return h('div', {
|
|
11754
11798
|
ref: isFixedLeft ? refLeftContainer : refRightContainer,
|
|
11755
|
-
class: `vxe-table--fixed-${fixedType}-wrapper
|
|
11799
|
+
class: [`vxe-table--fixed-${fixedType}-wrapper`, {
|
|
11800
|
+
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
11801
|
+
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
11802
|
+
}]
|
|
11756
11803
|
}, [
|
|
11757
11804
|
showHeader
|
|
11758
11805
|
? h(TableHeaderComponent, {
|
|
@@ -11940,6 +11987,7 @@ export default defineVxeComponent({
|
|
|
11940
11987
|
$columnIndex,
|
|
11941
11988
|
_columnIndex,
|
|
11942
11989
|
fixed: '',
|
|
11990
|
+
source: 'table',
|
|
11943
11991
|
type: 'body',
|
|
11944
11992
|
level: rowLevel,
|
|
11945
11993
|
rowid,
|
|
@@ -12039,10 +12087,20 @@ export default defineVxeComponent({
|
|
|
12039
12087
|
const renderViewport = () => {
|
|
12040
12088
|
const { showHeader, showFooter } = props;
|
|
12041
12089
|
const { overflowX, tableData, tableColumn, tableGroupColumn, footerTableData, columnStore } = reactData;
|
|
12090
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
12091
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
12092
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
12093
|
+
const { overscrollBehavior: overscrollXBehavior } = scrollbarXOpts;
|
|
12094
|
+
const { overscrollBehavior: overscrollYBehavior } = scrollbarYOpts;
|
|
12042
12095
|
const { leftList, rightList } = columnStore;
|
|
12096
|
+
const osXBehavior = XEUtils.eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
|
|
12097
|
+
const osYBehavior = XEUtils.eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
12043
12098
|
return h('div', {
|
|
12044
12099
|
ref: refTableViewportElem,
|
|
12045
|
-
class: 'vxe-table--viewport-wrapper'
|
|
12100
|
+
class: ['vxe-table--viewport-wrapper', {
|
|
12101
|
+
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
12102
|
+
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
12103
|
+
}]
|
|
12046
12104
|
}, [
|
|
12047
12105
|
h('div', {
|
|
12048
12106
|
class: 'vxe-table--main-wrapper'
|
|
@@ -12080,8 +12138,8 @@ export default defineVxeComponent({
|
|
|
12080
12138
|
h('div', {
|
|
12081
12139
|
class: 'vxe-table--fixed-wrapper'
|
|
12082
12140
|
}, [
|
|
12083
|
-
leftList && leftList.length && overflowX ?
|
|
12084
|
-
rightList && rightList.length && overflowX ?
|
|
12141
|
+
leftList && leftList.length && overflowX ? renderViewFixed('left') : renderEmptyElement($xeTable),
|
|
12142
|
+
rightList && rightList.length && overflowX ? renderViewFixed('right') : renderEmptyElement($xeTable)
|
|
12085
12143
|
]),
|
|
12086
12144
|
renderRowExpandedVNs()
|
|
12087
12145
|
]);
|
package/es/table/src/util.js
CHANGED
|
@@ -566,7 +566,7 @@ const lineOffsetSizes = {
|
|
|
566
566
|
medium: 1,
|
|
567
567
|
large: 0
|
|
568
568
|
};
|
|
569
|
-
function
|
|
569
|
+
function countTreeExpandSize(prevRow, params) {
|
|
570
570
|
let count = 1;
|
|
571
571
|
if (!prevRow) {
|
|
572
572
|
return count;
|
|
@@ -583,7 +583,7 @@ function countTreeExpand(prevRow, params) {
|
|
|
583
583
|
const rowChildren = prevRow[transform ? mapChildrenField : childrenField];
|
|
584
584
|
if (rowChildren && treeExpandedFlag && treeExpandedMaps[getRowid($table, prevRow)]) {
|
|
585
585
|
for (let index = 0; index < rowChildren.length; index++) {
|
|
586
|
-
count +=
|
|
586
|
+
count += countTreeExpandSize(rowChildren[index], params);
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
589
|
return count;
|
|
@@ -613,7 +613,7 @@ export function calcTreeLine(params, prevRow) {
|
|
|
613
613
|
const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
614
614
|
let expandSize = 1;
|
|
615
615
|
if (prevRow) {
|
|
616
|
-
expandSize =
|
|
616
|
+
expandSize = countTreeExpandSize(prevRow, params);
|
|
617
617
|
}
|
|
618
618
|
let cellHeight = currCellHeight;
|
|
619
619
|
const vnHeight = rowRest.height;
|
package/es/table/style.css
CHANGED
|
@@ -1788,6 +1788,18 @@
|
|
|
1788
1788
|
overflow: hidden;
|
|
1789
1789
|
flex-grow: 1;
|
|
1790
1790
|
}
|
|
1791
|
+
.vxe-table--viewport-wrapper.x-ob--contain > .vxe-table--main-wrapper > .vxe-table--header-wrapper > .vxe-table--header-inner-wrapper {
|
|
1792
|
+
overscroll-behavior-x: contain;
|
|
1793
|
+
}
|
|
1794
|
+
.vxe-table--viewport-wrapper.x-ob--contain > .vxe-table--main-wrapper > .vxe-table--body-wrapper > .vxe-table--body-inner-wrapper {
|
|
1795
|
+
overscroll-behavior-x: contain;
|
|
1796
|
+
}
|
|
1797
|
+
.vxe-table--viewport-wrapper.x-ob--contain > .vxe-table--main-wrapper > .vxe-table--footer-wrapper > .vxe-table--footer-inner-wrapper {
|
|
1798
|
+
overscroll-behavior-x: contain;
|
|
1799
|
+
}
|
|
1800
|
+
.vxe-table--viewport-wrapper.y-ob--contain > .vxe-table--main-wrapper > .vxe-table--body-wrapper > .vxe-table--body-inner-wrapper {
|
|
1801
|
+
overscroll-behavior-y: contain;
|
|
1802
|
+
}
|
|
1791
1803
|
|
|
1792
1804
|
.vxe-table--header-wrapper,
|
|
1793
1805
|
.vxe-table--body-wrapper,
|
|
@@ -2212,6 +2224,9 @@
|
|
|
2212
2224
|
left: 0;
|
|
2213
2225
|
bottom: 0;
|
|
2214
2226
|
}
|
|
2227
|
+
.vxe-table .vxe-table--scroll-x-wrapper {
|
|
2228
|
+
height: 100%;
|
|
2229
|
+
}
|
|
2215
2230
|
.vxe-table .vxe-table--scroll-x-handle {
|
|
2216
2231
|
overflow-y: hidden;
|
|
2217
2232
|
overflow-x: scroll;
|
|
@@ -3151,6 +3166,10 @@
|
|
|
3151
3166
|
outline: 0;
|
|
3152
3167
|
background-color: var(--vxe-ui-layout-background-color);
|
|
3153
3168
|
}
|
|
3169
|
+
.vxe-table--render-default .vxe-table--fixed-left-wrapper.y-ob--contain > .vxe-table--body-wrapper > .vxe-table--body-inner-wrapper,
|
|
3170
|
+
.vxe-table--render-default .vxe-table--fixed-right-wrapper.y-ob--contain > .vxe-table--body-wrapper > .vxe-table--body-inner-wrapper {
|
|
3171
|
+
overscroll-behavior-y: contain;
|
|
3172
|
+
}
|
|
3154
3173
|
.vxe-table--render-default .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper,
|
|
3155
3174
|
.vxe-table--render-default .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper {
|
|
3156
3175
|
outline: 0;
|