vxe-table 4.12.0 → 4.12.2
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/edit/hook.js +22 -24
- package/es/table/module/keyboard/hook.js +3 -2
- package/es/table/module/validator/hook.js +2 -4
- package/es/table/src/body.js +7 -8
- package/es/table/src/table.js +79 -100
- package/es/ui/index.js +3 -3
- package/es/ui/src/dom.js +0 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +12266 -1059
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +26 -34
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +2 -1
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +3 -8
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/body.js +7 -8
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +83 -115
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +3 -3
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +0 -2
- package/lib/ui/src/dom.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/edit/hook.ts +23 -24
- package/packages/table/module/keyboard/hook.ts +4 -2
- package/packages/table/module/validator/hook.ts +2 -4
- package/packages/table/src/body.ts +7 -8
- package/packages/table/src/table.ts +86 -108
- package/packages/ui/index.ts +2 -2
- package/packages/ui/src/dom.ts +0 -2
- /package/es/{iconfont.1742955995631.ttf → iconfont.1743125693758.ttf} +0 -0
- /package/es/{iconfont.1742955995631.woff → iconfont.1743125693758.woff} +0 -0
- /package/es/{iconfont.1742955995631.woff2 → iconfont.1743125693758.woff2} +0 -0
- /package/lib/{iconfont.1742955995631.ttf → iconfont.1743125693758.ttf} +0 -0
- /package/lib/{iconfont.1742955995631.woff → iconfont.1743125693758.woff} +0 -0
- /package/lib/{iconfont.1742955995631.woff2 → iconfont.1743125693758.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -53,6 +53,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
53
53
|
emit
|
|
54
54
|
} = context;
|
|
55
55
|
const xID = _xeUtils.default.uniqueId();
|
|
56
|
+
const browseObj = _xeUtils.default.browse();
|
|
56
57
|
// 使用已安装的组件,如果未安装则不渲染
|
|
57
58
|
const VxeUILoadingComponent = _ui.VxeUI.getComponent('VxeLoading');
|
|
58
59
|
const VxeUITooltipComponent = _ui.VxeUI.getComponent('VxeTooltip');
|
|
@@ -198,9 +199,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
198
199
|
focused: {
|
|
199
200
|
row: null,
|
|
200
201
|
column: null
|
|
201
|
-
}
|
|
202
|
-
insertMaps: {},
|
|
203
|
-
removeMaps: {}
|
|
202
|
+
}
|
|
204
203
|
},
|
|
205
204
|
// 存放 tooltip 相关信息
|
|
206
205
|
tooltipStore: {
|
|
@@ -262,6 +261,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
262
261
|
treeExpandedFlag: 1,
|
|
263
262
|
updateCheckboxFlag: 1,
|
|
264
263
|
pendingRowFlag: 1,
|
|
264
|
+
insertRowFlag: 1,
|
|
265
|
+
removeRowFlag: 1,
|
|
265
266
|
rowHeightStore: {
|
|
266
267
|
default: 48,
|
|
267
268
|
medium: 44,
|
|
@@ -361,7 +362,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
361
362
|
fullDataRowIdData: {},
|
|
362
363
|
fullColumnIdData: {},
|
|
363
364
|
fullColumnFieldData: {},
|
|
364
|
-
// prevDragRow: null,
|
|
365
365
|
// 已展开的行集合
|
|
366
366
|
rowExpandedMaps: {},
|
|
367
367
|
// 懒加载中的展开行的集合
|
|
@@ -374,6 +374,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
374
374
|
selectCheckboxMaps: {},
|
|
375
375
|
// 已标记的对象集
|
|
376
376
|
pendingRowMaps: {},
|
|
377
|
+
// 已新增的临时行
|
|
378
|
+
insertRowMaps: {},
|
|
379
|
+
// 已删除行
|
|
380
|
+
removeRowMaps: {},
|
|
377
381
|
inited: false,
|
|
378
382
|
tooltipTimeout: null,
|
|
379
383
|
initStatus: false,
|
|
@@ -449,10 +453,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
449
453
|
return virtualXOpts;
|
|
450
454
|
});
|
|
451
455
|
const computeScrollXThreshold = (0, _vue.computed)(() => {
|
|
452
|
-
const
|
|
456
|
+
const virtualXOpts = computeVirtualXOpts.value;
|
|
453
457
|
const {
|
|
454
458
|
threshold
|
|
455
|
-
} =
|
|
459
|
+
} = virtualXOpts;
|
|
456
460
|
if (threshold) {
|
|
457
461
|
return _xeUtils.default.toNumber(threshold);
|
|
458
462
|
}
|
|
@@ -483,10 +487,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
483
487
|
return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
|
|
484
488
|
});
|
|
485
489
|
const computeScrollYThreshold = (0, _vue.computed)(() => {
|
|
486
|
-
const
|
|
490
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
487
491
|
const {
|
|
488
492
|
threshold
|
|
489
|
-
} =
|
|
493
|
+
} = virtualYOpts;
|
|
490
494
|
if (threshold) {
|
|
491
495
|
return _xeUtils.default.toNumber(threshold);
|
|
492
496
|
}
|
|
@@ -1149,18 +1153,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1149
1153
|
};
|
|
1150
1154
|
const setMerges = (merges, mList, rowList) => {
|
|
1151
1155
|
if (merges) {
|
|
1152
|
-
const {
|
|
1153
|
-
treeConfig
|
|
1154
|
-
} = props;
|
|
1156
|
+
// const { treeConfig } = props
|
|
1155
1157
|
const {
|
|
1156
1158
|
visibleColumn
|
|
1157
1159
|
} = internalData;
|
|
1158
1160
|
if (!_xeUtils.default.isArray(merges)) {
|
|
1159
1161
|
merges = [merges];
|
|
1160
1162
|
}
|
|
1161
|
-
if (treeConfig && merges.length) {
|
|
1162
|
-
|
|
1163
|
-
}
|
|
1163
|
+
// if (treeConfig && merges.length) {
|
|
1164
|
+
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1165
|
+
// }
|
|
1164
1166
|
merges.forEach(item => {
|
|
1165
1167
|
let {
|
|
1166
1168
|
row,
|
|
@@ -1207,18 +1209,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1207
1209
|
const removeMerges = (merges, mList, rowList) => {
|
|
1208
1210
|
const rest = [];
|
|
1209
1211
|
if (merges) {
|
|
1210
|
-
const {
|
|
1211
|
-
treeConfig
|
|
1212
|
-
} = props;
|
|
1212
|
+
// const { treeConfig } = props
|
|
1213
1213
|
const {
|
|
1214
1214
|
visibleColumn
|
|
1215
1215
|
} = internalData;
|
|
1216
1216
|
if (!_xeUtils.default.isArray(merges)) {
|
|
1217
1217
|
merges = [merges];
|
|
1218
1218
|
}
|
|
1219
|
-
if (treeConfig && merges.length) {
|
|
1220
|
-
|
|
1221
|
-
}
|
|
1219
|
+
// if (treeConfig && merges.length) {
|
|
1220
|
+
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1221
|
+
// }
|
|
1222
1222
|
merges.forEach(item => {
|
|
1223
1223
|
let {
|
|
1224
1224
|
row,
|
|
@@ -2113,7 +2113,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2113
2113
|
};
|
|
2114
2114
|
const updateStyle = () => {
|
|
2115
2115
|
const {
|
|
2116
|
-
border,
|
|
2117
2116
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
2118
2117
|
showFooterOverflow: allColumnFooterOverflow,
|
|
2119
2118
|
mouseConfig,
|
|
@@ -2292,36 +2291,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2292
2291
|
if (tableElem) {
|
|
2293
2292
|
tableElem.style.width = tWidth ? `${tWidth}px` : '';
|
|
2294
2293
|
}
|
|
2295
|
-
const listElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-list`]);
|
|
2296
|
-
if (isGroup && listElem) {
|
|
2297
|
-
_xeUtils.default.arrayEach(listElem.querySelectorAll('.col--group'), thElem => {
|
|
2298
|
-
const colNode = $xeTable.getColumnNode(thElem);
|
|
2299
|
-
if (colNode) {
|
|
2300
|
-
const column = colNode.item;
|
|
2301
|
-
const {
|
|
2302
|
-
showHeaderOverflow
|
|
2303
|
-
} = column;
|
|
2304
|
-
const cellOverflow = _xeUtils.default.isBoolean(showHeaderOverflow) ? showHeaderOverflow : allColumnHeaderOverflow;
|
|
2305
|
-
const showEllipsis = cellOverflow === 'ellipsis';
|
|
2306
|
-
const showTitle = cellOverflow === 'title';
|
|
2307
|
-
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
|
|
2308
|
-
const hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
2309
|
-
let childWidth = 0;
|
|
2310
|
-
let countChild = 0;
|
|
2311
|
-
if (hasEllipsis) {
|
|
2312
|
-
_xeUtils.default.eachTree(column.children, item => {
|
|
2313
|
-
if (!item.children || !column.children.length) {
|
|
2314
|
-
countChild++;
|
|
2315
|
-
}
|
|
2316
|
-
childWidth += item.renderWidth;
|
|
2317
|
-
}, {
|
|
2318
|
-
children: 'children'
|
|
2319
|
-
});
|
|
2320
|
-
}
|
|
2321
|
-
thElem.style.width = hasEllipsis ? `${childWidth - countChild - (border ? 2 : 0)}px` : '';
|
|
2322
|
-
}
|
|
2323
|
-
});
|
|
2324
|
-
}
|
|
2325
2294
|
} else if (layout === 'body') {
|
|
2326
2295
|
if (currScrollElem) {
|
|
2327
2296
|
currScrollElem.style.maxHeight = customMaxHeight ? `${bodyMaxHeight}px` : '';
|
|
@@ -2367,7 +2336,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2367
2336
|
if (tableElem) {
|
|
2368
2337
|
tableElem.style.width = tWidth ? `${tWidth}px` : '';
|
|
2369
2338
|
// 兼容性处理
|
|
2370
|
-
tableElem.style.paddingRight = osbWidth && fixedType && (
|
|
2339
|
+
tableElem.style.paddingRight = osbWidth && fixedType && (browseObj['-moz'] || browseObj.safari) ? `${osbWidth}px` : '';
|
|
2371
2340
|
}
|
|
2372
2341
|
const emptyBlockElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-emptyBlock`]);
|
|
2373
2342
|
if (emptyBlockElem) {
|
|
@@ -2460,7 +2429,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2460
2429
|
order
|
|
2461
2430
|
} = item;
|
|
2462
2431
|
if (field && order) {
|
|
2463
|
-
const column =
|
|
2432
|
+
const column = $xeTable.getColumnByField(field);
|
|
2464
2433
|
if (column && column.sortable) {
|
|
2465
2434
|
column.order = order;
|
|
2466
2435
|
column.sortTime = Date.now() + index;
|
|
@@ -2468,7 +2437,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2468
2437
|
}
|
|
2469
2438
|
});
|
|
2470
2439
|
if (!sortOpts.remote) {
|
|
2471
|
-
|
|
2440
|
+
$xeTable.handleTableData(true).then(updateStyle);
|
|
2472
2441
|
}
|
|
2473
2442
|
}
|
|
2474
2443
|
}
|
|
@@ -2549,7 +2518,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2549
2518
|
expandRowKeys
|
|
2550
2519
|
} = expandOpts;
|
|
2551
2520
|
if (expandAll) {
|
|
2552
|
-
|
|
2521
|
+
$xeTable.setAllRowExpand(true);
|
|
2553
2522
|
} else if (expandRowKeys) {
|
|
2554
2523
|
const defExpandeds = [];
|
|
2555
2524
|
expandRowKeys.forEach(rowid => {
|
|
@@ -2557,7 +2526,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2557
2526
|
defExpandeds.push(fullDataRowIdData[rowid].row);
|
|
2558
2527
|
}
|
|
2559
2528
|
});
|
|
2560
|
-
|
|
2529
|
+
$xeTable.setRowExpand(defExpandeds, true);
|
|
2561
2530
|
}
|
|
2562
2531
|
}
|
|
2563
2532
|
};
|
|
@@ -2993,7 +2962,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2993
2962
|
mergeCells
|
|
2994
2963
|
} = props;
|
|
2995
2964
|
if (mergeCells) {
|
|
2996
|
-
|
|
2965
|
+
$xeTable.setMergeCells(mergeCells);
|
|
2997
2966
|
}
|
|
2998
2967
|
};
|
|
2999
2968
|
const handleDefaultMergeFooterItems = () => {
|
|
@@ -3001,7 +2970,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3001
2970
|
mergeFooterItems
|
|
3002
2971
|
} = props;
|
|
3003
2972
|
if (mergeFooterItems) {
|
|
3004
|
-
|
|
2973
|
+
$xeTable.setMergeFooterItems(mergeFooterItems);
|
|
3005
2974
|
}
|
|
3006
2975
|
};
|
|
3007
2976
|
// 计算可视渲染相关数据
|
|
@@ -3105,7 +3074,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3105
3074
|
treeConfig
|
|
3106
3075
|
} = props;
|
|
3107
3076
|
const {
|
|
3108
|
-
editStore,
|
|
3109
3077
|
scrollYLoad: oldScrollYLoad
|
|
3110
3078
|
} = reactData;
|
|
3111
3079
|
const {
|
|
@@ -3164,8 +3132,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3164
3132
|
scrollXStore.endIndex = 1;
|
|
3165
3133
|
reactData.isRowLoading = true;
|
|
3166
3134
|
reactData.scrollVMLoading = false;
|
|
3167
|
-
|
|
3168
|
-
|
|
3135
|
+
internalData.insertRowMaps = {};
|
|
3136
|
+
internalData.removeRowMaps = {};
|
|
3169
3137
|
const sYLoad = updateScrollYStatus(fullData);
|
|
3170
3138
|
reactData.isDragColMove = false;
|
|
3171
3139
|
reactData.isDragRowMove = false;
|
|
@@ -3187,10 +3155,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3187
3155
|
$xeTable.clearCellAreas();
|
|
3188
3156
|
$xeTable.clearCopyCellArea();
|
|
3189
3157
|
}
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3158
|
+
$xeTable.clearMergeCells();
|
|
3159
|
+
$xeTable.clearMergeFooterItems();
|
|
3160
|
+
$xeTable.handleTableData(true);
|
|
3161
|
+
$xeTable.updateFooter();
|
|
3194
3162
|
return (0, _vue.nextTick)().then(() => {
|
|
3195
3163
|
updateHeight();
|
|
3196
3164
|
updateStyle();
|
|
@@ -3221,18 +3189,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3221
3189
|
}
|
|
3222
3190
|
}
|
|
3223
3191
|
handleReserveStatus();
|
|
3224
|
-
|
|
3192
|
+
$xeTable.checkSelectionStatus();
|
|
3225
3193
|
return new Promise(resolve => {
|
|
3226
|
-
(0, _vue.nextTick)().then(() =>
|
|
3194
|
+
(0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => {
|
|
3227
3195
|
let targetScrollLeft = lastScrollLeft;
|
|
3228
3196
|
let targetScrollTop = lastScrollTop;
|
|
3229
|
-
const
|
|
3230
|
-
const
|
|
3197
|
+
const virtualXOpts = computeVirtualXOpts.value;
|
|
3198
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
3231
3199
|
// 是否在更新数据之后自动滚动重置滚动条
|
|
3232
|
-
if (
|
|
3200
|
+
if (virtualXOpts.scrollToLeftOnChange) {
|
|
3233
3201
|
targetScrollLeft = 0;
|
|
3234
3202
|
}
|
|
3235
|
-
if (
|
|
3203
|
+
if (virtualYOpts.scrollToTopOnChange) {
|
|
3236
3204
|
targetScrollTop = 0;
|
|
3237
3205
|
}
|
|
3238
3206
|
reactData.isRowLoading = false;
|
|
@@ -3265,7 +3233,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3265
3233
|
handleDefaultTreeExpand();
|
|
3266
3234
|
handleDefaultMergeCells();
|
|
3267
3235
|
handleDefaultMergeFooterItems();
|
|
3268
|
-
(0, _vue.nextTick)(() => setTimeout(() =>
|
|
3236
|
+
(0, _vue.nextTick)(() => setTimeout(() => $xeTable.recalculate()));
|
|
3269
3237
|
};
|
|
3270
3238
|
/**
|
|
3271
3239
|
* 处理初始化的默认行为
|
|
@@ -3357,7 +3325,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3357
3325
|
isGroup,
|
|
3358
3326
|
columnStore
|
|
3359
3327
|
} = reactData;
|
|
3360
|
-
const
|
|
3328
|
+
const virtualXOpts = computeVirtualXOpts.value;
|
|
3361
3329
|
const {
|
|
3362
3330
|
collectColumn,
|
|
3363
3331
|
tableFullColumn,
|
|
@@ -3418,7 +3386,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3418
3386
|
}
|
|
3419
3387
|
const visibleColumn = leftList.concat(centerList).concat(rightList);
|
|
3420
3388
|
// 如果gt为0,则总是启用
|
|
3421
|
-
const scrollXLoad = !!
|
|
3389
|
+
const scrollXLoad = !!virtualXOpts.enabled && virtualXOpts.gt > -1 && (virtualXOpts.gt === 0 || virtualXOpts.gt < tableFullColumn.length);
|
|
3422
3390
|
reactData.hasFixedColumn = leftList.length > 0 || rightList.length > 0;
|
|
3423
3391
|
Object.assign(columnStore, {
|
|
3424
3392
|
leftList,
|
|
@@ -3541,14 +3509,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3541
3509
|
const {
|
|
3542
3510
|
treeConfig
|
|
3543
3511
|
} = props;
|
|
3544
|
-
const
|
|
3512
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
3545
3513
|
const treeOpts = computeTreeOpts.value;
|
|
3546
3514
|
const {
|
|
3547
3515
|
transform
|
|
3548
3516
|
} = treeOpts;
|
|
3549
3517
|
const allList = fullData || internalData.tableFullData;
|
|
3550
3518
|
// 如果gt为0,则总是启用
|
|
3551
|
-
const scrollYLoad = (transform || !treeConfig) && !!
|
|
3519
|
+
const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length);
|
|
3552
3520
|
reactData.scrollYLoad = scrollYLoad;
|
|
3553
3521
|
return scrollYLoad;
|
|
3554
3522
|
};
|
|
@@ -4376,18 +4344,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4376
4344
|
keepSource,
|
|
4377
4345
|
treeConfig
|
|
4378
4346
|
} = props;
|
|
4379
|
-
const {
|
|
4380
|
-
editStore
|
|
4381
|
-
} = reactData;
|
|
4382
4347
|
const {
|
|
4383
4348
|
fullAllDataRowIdData,
|
|
4384
4349
|
fullDataRowIdData,
|
|
4385
4350
|
tableSourceData,
|
|
4386
4351
|
sourceDataRowIdData,
|
|
4387
4352
|
tableFullData,
|
|
4388
|
-
afterFullData
|
|
4353
|
+
afterFullData,
|
|
4354
|
+
removeRowMaps
|
|
4389
4355
|
} = internalData;
|
|
4390
|
-
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
4391
4356
|
const treeOpts = computeTreeOpts.value;
|
|
4392
4357
|
const {
|
|
4393
4358
|
transform
|
|
@@ -4425,7 +4390,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4425
4390
|
_xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
|
|
4426
4391
|
}
|
|
4427
4392
|
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
4428
|
-
|
|
4393
|
+
if (removeRowMaps[rowid]) {
|
|
4394
|
+
delete removeRowMaps[rowid];
|
|
4395
|
+
}
|
|
4429
4396
|
tableFullData.unshift(row);
|
|
4430
4397
|
afterFullData.unshift(row);
|
|
4431
4398
|
reDelFlag = true;
|
|
@@ -4437,7 +4404,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4437
4404
|
}
|
|
4438
4405
|
if (rows) {
|
|
4439
4406
|
if (reDelFlag) {
|
|
4440
|
-
|
|
4407
|
+
reactData.removeRowFlag++;
|
|
4441
4408
|
$xeTable.updateFooter();
|
|
4442
4409
|
$xeTable.cacheRowMap(false);
|
|
4443
4410
|
$xeTable.handleTableData(treeConfig && transform);
|
|
@@ -4581,28 +4548,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4581
4548
|
* @param {Row} row 行对象
|
|
4582
4549
|
*/
|
|
4583
4550
|
isInsertByRow(row) {
|
|
4584
|
-
const {
|
|
4585
|
-
editStore
|
|
4586
|
-
} = reactData;
|
|
4587
4551
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4588
|
-
return !!
|
|
4552
|
+
return !!reactData.insertRowFlag && !!internalData.insertRowMaps[rowid];
|
|
4589
4553
|
},
|
|
4590
4554
|
isRemoveByRow(row) {
|
|
4591
|
-
const {
|
|
4592
|
-
editStore
|
|
4593
|
-
} = reactData;
|
|
4594
4555
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4595
|
-
return !!
|
|
4556
|
+
return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
|
|
4596
4557
|
},
|
|
4597
4558
|
/**
|
|
4598
4559
|
* 删除所有新增的临时数据
|
|
4599
4560
|
* @returns
|
|
4600
4561
|
*/
|
|
4601
4562
|
removeInsertRow() {
|
|
4602
|
-
|
|
4603
|
-
editStore
|
|
4604
|
-
} = reactData;
|
|
4605
|
-
editStore.insertMaps = {};
|
|
4563
|
+
internalData.insertRowMaps = {};
|
|
4606
4564
|
return $xeTable.remove($xeTable.getInsertRecords());
|
|
4607
4565
|
},
|
|
4608
4566
|
/**
|
|
@@ -4647,8 +4605,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4647
4605
|
* @param {Number} columnIndex 索引
|
|
4648
4606
|
*/
|
|
4649
4607
|
getColumns(columnIndex) {
|
|
4650
|
-
const
|
|
4651
|
-
|
|
4608
|
+
const {
|
|
4609
|
+
visibleColumn
|
|
4610
|
+
} = internalData;
|
|
4611
|
+
return _xeUtils.default.isUndefined(columnIndex) ? visibleColumn.slice(0) : visibleColumn[columnIndex];
|
|
4652
4612
|
},
|
|
4653
4613
|
/**
|
|
4654
4614
|
* 根据列获取列的唯一主键
|
|
@@ -4662,7 +4622,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4662
4622
|
* @param {String} colid 列主键
|
|
4663
4623
|
*/
|
|
4664
4624
|
getColumnById(colid) {
|
|
4665
|
-
const
|
|
4625
|
+
const {
|
|
4626
|
+
fullColumnIdData
|
|
4627
|
+
} = internalData;
|
|
4666
4628
|
return colid && fullColumnIdData[colid] ? fullColumnIdData[colid].column : null;
|
|
4667
4629
|
},
|
|
4668
4630
|
/**
|
|
@@ -4674,7 +4636,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4674
4636
|
return field && fullColumnFieldData[field] ? fullColumnFieldData[field].column : null;
|
|
4675
4637
|
},
|
|
4676
4638
|
getParentColumn(fieldOrColumn) {
|
|
4677
|
-
const
|
|
4639
|
+
const {
|
|
4640
|
+
fullColumnIdData
|
|
4641
|
+
} = internalData;
|
|
4678
4642
|
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
4679
4643
|
return column && column.parentId && fullColumnIdData[column.parentId] ? fullColumnIdData[column.parentId].column : null;
|
|
4680
4644
|
},
|
|
@@ -7730,7 +7694,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7730
7694
|
* @param {Event} evnt 事件
|
|
7731
7695
|
* @param {Row} row 行对象
|
|
7732
7696
|
*/
|
|
7733
|
-
const handleTooltip = (evnt, tdEl, overflowElem, params) => {
|
|
7697
|
+
const handleTooltip = (evnt, tdEl, overflowElem, tipElem, params) => {
|
|
7734
7698
|
const tipOverEl = overflowElem || tdEl;
|
|
7735
7699
|
if (!tipOverEl) {
|
|
7736
7700
|
return (0, _vue.nextTick)();
|
|
@@ -7751,7 +7715,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7751
7715
|
const customContent = contentMethod ? contentMethod(params) : null;
|
|
7752
7716
|
const useCustom = contentMethod && !_xeUtils.default.eqNull(customContent);
|
|
7753
7717
|
const content = useCustom ? customContent : _xeUtils.default.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
|
|
7754
|
-
|
|
7718
|
+
const isOver = tipOverEl.scrollWidth > tipOverEl.clientWidth;
|
|
7719
|
+
if (content && (showAll || useCustom || isOver)) {
|
|
7755
7720
|
Object.assign(tooltipStore, {
|
|
7756
7721
|
row,
|
|
7757
7722
|
column,
|
|
@@ -7761,7 +7726,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7761
7726
|
(0, _vue.nextTick)(() => {
|
|
7762
7727
|
const $tooltip = refTooltip.value;
|
|
7763
7728
|
if ($tooltip && $tooltip.open) {
|
|
7764
|
-
$tooltip.open(tipOverEl, (0, _utils.formatText)(content));
|
|
7729
|
+
$tooltip.open(isOver ? tipOverEl : tipElem, (0, _utils.formatText)(content));
|
|
7765
7730
|
}
|
|
7766
7731
|
});
|
|
7767
7732
|
}
|
|
@@ -8887,7 +8852,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8887
8852
|
return;
|
|
8888
8853
|
}
|
|
8889
8854
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
8890
|
-
handleTooltip(evnt, thEl, thEl.querySelector('.vxe-cell--title') || cellEl, params);
|
|
8855
|
+
handleTooltip(evnt, thEl, thEl.querySelector('.vxe-cell--wrapper'), thEl.querySelector('.vxe-cell--title') || cellEl, params);
|
|
8891
8856
|
}
|
|
8892
8857
|
},
|
|
8893
8858
|
/**
|
|
@@ -8925,7 +8890,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8925
8890
|
}
|
|
8926
8891
|
}
|
|
8927
8892
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
8928
|
-
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
8893
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
8929
8894
|
}
|
|
8930
8895
|
},
|
|
8931
8896
|
/**
|
|
@@ -8941,7 +8906,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8941
8906
|
const tdEl = evnt.currentTarget;
|
|
8942
8907
|
handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
|
|
8943
8908
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
8944
|
-
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
8909
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
8945
8910
|
}
|
|
8946
8911
|
},
|
|
8947
8912
|
handleTargetLeaveEvent() {
|
|
@@ -10356,8 +10321,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10356
10321
|
* 横向 X 可视渲染事件处理
|
|
10357
10322
|
*/
|
|
10358
10323
|
triggerScrollXEvent() {
|
|
10359
|
-
const
|
|
10360
|
-
if (
|
|
10324
|
+
const virtualXOpts = computeVirtualXOpts.value;
|
|
10325
|
+
if (virtualXOpts.immediate) {
|
|
10361
10326
|
loadScrollXData();
|
|
10362
10327
|
} else {
|
|
10363
10328
|
lazyScrollXData();
|
|
@@ -10367,8 +10332,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10367
10332
|
* 纵向 Y 可视渲染事件处理
|
|
10368
10333
|
*/
|
|
10369
10334
|
triggerScrollYEvent() {
|
|
10370
|
-
const
|
|
10371
|
-
if (
|
|
10335
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
10336
|
+
if (virtualYOpts.immediate) {
|
|
10372
10337
|
loadScrollYData();
|
|
10373
10338
|
} else {
|
|
10374
10339
|
lazyScrollYData();
|
|
@@ -10606,8 +10571,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10606
10571
|
return;
|
|
10607
10572
|
}
|
|
10608
10573
|
const wheelSpeed = getWheelSpeed(reactData.lastScrollTime);
|
|
10609
|
-
const deltaTop =
|
|
10610
|
-
const deltaLeft = Math.ceil((shiftKey ? deltaY : deltaX) * wheelSpeed);
|
|
10574
|
+
const deltaTop = shiftKey ? 0 : Math.ceil(deltaY * wheelSpeed);
|
|
10575
|
+
const deltaLeft = shiftKey ? Math.ceil((shiftKey ? deltaY || deltaX : deltaX) * wheelSpeed) : 0;
|
|
10611
10576
|
const isTopWheel = deltaTop < 0;
|
|
10612
10577
|
const currScrollTop = bodyScrollElem.scrollTop;
|
|
10613
10578
|
// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
@@ -10626,6 +10591,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10626
10591
|
evnt.preventDefault();
|
|
10627
10592
|
internalData.inWheelScroll = true;
|
|
10628
10593
|
wheelScrollLeftTo(scrollLeft, offsetLeft => {
|
|
10594
|
+
internalData.inWheelScroll = true;
|
|
10629
10595
|
const currLeftNum = offsetLeft;
|
|
10630
10596
|
(0, _dom.setScrollLeft)(xHandleEl, currLeftNum);
|
|
10631
10597
|
(0, _dom.setScrollLeft)(bodyScrollElem, currLeftNum);
|
|
@@ -10642,9 +10608,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10642
10608
|
}
|
|
10643
10609
|
if (isRollY) {
|
|
10644
10610
|
evnt.preventDefault();
|
|
10611
|
+
internalData.inWheelScroll = true;
|
|
10645
10612
|
wheelScrollTopTo(scrollTop - currScrollTop, offsetTop => {
|
|
10646
|
-
const currTopNum = bodyScrollElem.scrollTop + offsetTop;
|
|
10647
10613
|
internalData.inWheelScroll = true;
|
|
10614
|
+
const currTopNum = bodyScrollElem.scrollTop + offsetTop;
|
|
10648
10615
|
(0, _dom.setScrollTop)(yHandleEl, currTopNum);
|
|
10649
10616
|
(0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
|
|
10650
10617
|
(0, _dom.setScrollTop)(leftScrollElem, currTopNum);
|
|
@@ -11746,6 +11713,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
11746
11713
|
(0, _vue.watch)(computeScrollbarYToLeft, () => {
|
|
11747
11714
|
reLayoutFlag.value++;
|
|
11748
11715
|
});
|
|
11716
|
+
(0, _vue.watch)(() => _ui.VxeUI.getLanguage(), () => {
|
|
11717
|
+
reLayoutFlag.value++;
|
|
11718
|
+
});
|
|
11749
11719
|
(0, _vue.watch)(reLayoutFlag, () => {
|
|
11750
11720
|
(0, _vue.nextTick)(() => tableMethods.recalculate(true));
|
|
11751
11721
|
});
|
|
@@ -11849,7 +11819,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
11849
11819
|
scrollXStore,
|
|
11850
11820
|
scrollYStore
|
|
11851
11821
|
} = internalData;
|
|
11852
|
-
const sYOpts = computeSYOpts.value;
|
|
11853
11822
|
const editOpts = computeEditOpts.value;
|
|
11854
11823
|
const treeOpts = computeTreeOpts.value;
|
|
11855
11824
|
const radioOpts = computeRadioOpts.value;
|
|
@@ -11975,8 +11944,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
11975
11944
|
Object.assign(scrollYStore, {
|
|
11976
11945
|
startIndex: 0,
|
|
11977
11946
|
endIndex: 0,
|
|
11978
|
-
visibleSize: 0
|
|
11979
|
-
adaptive: sYOpts.adaptive !== false
|
|
11947
|
+
visibleSize: 0
|
|
11980
11948
|
});
|
|
11981
11949
|
Object.assign(scrollXStore, {
|
|
11982
11950
|
startIndex: 0,
|