vxe-table 4.8.0 → 4.8.1
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/locale/lang/en-US.js +4 -2
- package/es/locale/lang/es-ES.js +4 -2
- package/es/locale/lang/hu-HU.js +4 -2
- package/es/locale/lang/ja-JP.js +4 -2
- package/es/locale/lang/ko-KR.js +4 -2
- package/es/locale/lang/pt-BR.js +4 -2
- package/es/locale/lang/ru-RU.js +4 -2
- package/es/locale/lang/uk-UA.js +4 -2
- package/es/locale/lang/vi-VN.js +4 -2
- package/es/locale/lang/zh-CHT.js +4 -2
- package/es/locale/lang/zh-CN.js +4 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +7 -4
- package/es/table/src/body.js +22 -8
- package/es/table/src/cell.js +53 -24
- package/es/table/src/column.js +3 -1
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/emits.js +3 -0
- package/es/table/src/props.js +2 -0
- package/es/table/src/table.js +241 -40
- package/es/table/style.css +74 -2
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +74 -2
- 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.umd.js +359 -82
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -2
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -2
- package/lib/locale/lang/es-ES.js +4 -2
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +4 -2
- package/lib/locale/lang/hu-HU.js +4 -2
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +4 -2
- package/lib/locale/lang/ja-JP.js +4 -2
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +4 -2
- package/lib/locale/lang/ko-KR.js +4 -2
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +4 -2
- package/lib/locale/lang/pt-BR.js +4 -2
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +4 -2
- package/lib/locale/lang/ru-RU.js +4 -2
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -2
- package/lib/locale/lang/uk-UA.js +4 -2
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +4 -2
- package/lib/locale/lang/vi-VN.js +4 -2
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +4 -2
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +4 -2
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +4 -2
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/hook.js +8 -4
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/body.js +18 -5
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +60 -24
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +3 -1
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/props.js +2 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +258 -43
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +74 -2
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +4 -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/vxe-table/style/style.css +74 -2
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/en-US.ts +4 -2
- package/packages/locale/lang/es-ES.ts +4 -2
- package/packages/locale/lang/hu-HU.ts +4 -2
- package/packages/locale/lang/ja-JP.ts +4 -2
- package/packages/locale/lang/ko-KR.ts +4 -2
- package/packages/locale/lang/pt-BR.ts +4 -2
- package/packages/locale/lang/ru-RU.ts +4 -2
- package/packages/locale/lang/uk-UA.ts +4 -2
- package/packages/locale/lang/vi-VN.ts +4 -2
- package/packages/locale/lang/zh-CHT.ts +4 -2
- package/packages/locale/lang/zh-CN.ts +4 -2
- package/packages/table/module/custom/panel.ts +1 -1
- package/packages/table/module/edit/hook.ts +7 -4
- package/packages/table/src/body.ts +22 -8
- package/packages/table/src/cell.ts +57 -24
- package/packages/table/src/column.ts +3 -1
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/emits.ts +4 -0
- package/packages/table/src/props.ts +2 -0
- package/packages/table/src/table.ts +258 -42
- package/packages/ui/index.ts +3 -0
- package/styles/components/table-module/custom.scss +9 -3
- package/styles/components/table.scss +80 -0
- /package/es/{iconfont.1730681238555.ttf → iconfont.1730873064176.ttf} +0 -0
- /package/es/{iconfont.1730681238555.woff → iconfont.1730873064176.woff} +0 -0
- /package/es/{iconfont.1730681238555.woff2 → iconfont.1730873064176.woff2} +0 -0
- /package/lib/{iconfont.1730681238555.ttf → iconfont.1730873064176.ttf} +0 -0
- /package/lib/{iconfont.1730681238555.woff → iconfont.1730873064176.woff} +0 -0
- /package/lib/{iconfont.1730681238555.woff2 → iconfont.1730873064176.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -272,6 +272,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
272
272
|
isFooter: false
|
|
273
273
|
},
|
|
274
274
|
scrollVMLoading: false,
|
|
275
|
+
isDragRowMove: false,
|
|
276
|
+
dragRow: null,
|
|
277
|
+
dragTipText: '',
|
|
275
278
|
_isResize: false,
|
|
276
279
|
_isLoading: false
|
|
277
280
|
});
|
|
@@ -346,6 +349,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
346
349
|
columnStatusMaps: {},
|
|
347
350
|
// 行选取状态
|
|
348
351
|
rowStatusMaps: {},
|
|
352
|
+
// prevDragRow: null,
|
|
349
353
|
inited: false,
|
|
350
354
|
tooltipTimeout: null,
|
|
351
355
|
initStatus: false,
|
|
@@ -373,6 +377,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
373
377
|
const refRightContainer = (0, _vue.ref)();
|
|
374
378
|
const refCellResizeBar = (0, _vue.ref)();
|
|
375
379
|
const refEmptyPlaceholder = (0, _vue.ref)();
|
|
380
|
+
const refRowDragTipElem = (0, _vue.ref)();
|
|
376
381
|
const refScrollXVirtualElem = (0, _vue.ref)();
|
|
377
382
|
const refScrollYVirtualElem = (0, _vue.ref)();
|
|
378
383
|
const refScrollXHandleElem = (0, _vue.ref)();
|
|
@@ -422,6 +427,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
422
427
|
const computeRowOpts = (0, _vue.computed)(() => {
|
|
423
428
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
424
429
|
});
|
|
430
|
+
const computeDragOpts = (0, _vue.computed)(() => {
|
|
431
|
+
return Object.assign({}, getConfig().table.dragConfig, props.dragConfig);
|
|
432
|
+
});
|
|
425
433
|
const computeResizeOpts = (0, _vue.computed)(() => {
|
|
426
434
|
return Object.assign({}, getConfig().table.resizeConfig, props.resizeConfig);
|
|
427
435
|
});
|
|
@@ -667,6 +675,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
667
675
|
computeColumnOpts,
|
|
668
676
|
computeCellOpts,
|
|
669
677
|
computeRowOpts,
|
|
678
|
+
computeDragOpts,
|
|
670
679
|
computeResizeOpts,
|
|
671
680
|
computeResizableOpts,
|
|
672
681
|
computeSeqOpts,
|
|
@@ -3235,7 +3244,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3235
3244
|
const handleCheckAllEvent = (evnt, value) => {
|
|
3236
3245
|
handleCheckedAllCheckboxRow(value);
|
|
3237
3246
|
if (evnt) {
|
|
3238
|
-
|
|
3247
|
+
dispatchEvent('checkbox-all', {
|
|
3239
3248
|
records: tableMethods.getCheckboxRecords(),
|
|
3240
3249
|
reserves: tableMethods.getCheckboxReserveRecords(),
|
|
3241
3250
|
indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
|
|
@@ -3314,14 +3323,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3314
3323
|
leading: false,
|
|
3315
3324
|
trailing: true
|
|
3316
3325
|
});
|
|
3317
|
-
const
|
|
3318
|
-
const wrapperEl = evnt.currentTarget;
|
|
3326
|
+
const handleSyncScrollX = scrollLeft => {
|
|
3319
3327
|
const tableHeader = refTableHeader.value;
|
|
3320
3328
|
const tableBody = refTableBody.value;
|
|
3321
3329
|
const tableFooter = refTableFooter.value;
|
|
3322
3330
|
const bodyElem = tableBody.$el;
|
|
3323
3331
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
3324
3332
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
3333
|
+
(0, _dom.setScrollLeft)(bodyElem, scrollLeft);
|
|
3334
|
+
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
3335
|
+
(0, _dom.setScrollLeft)(footerElem, scrollLeft);
|
|
3336
|
+
(0, _dom.setScrollLeft)(bodyElem, scrollLeft);
|
|
3337
|
+
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
3338
|
+
(0, _dom.setScrollLeft)(footerElem, scrollLeft);
|
|
3339
|
+
};
|
|
3340
|
+
const scrollXEvent = evnt => {
|
|
3341
|
+
const wrapperEl = evnt.currentTarget;
|
|
3325
3342
|
const {
|
|
3326
3343
|
scrollTop,
|
|
3327
3344
|
scrollLeft
|
|
@@ -3330,9 +3347,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3330
3347
|
const isRollY = false;
|
|
3331
3348
|
internalData.lastScrollLeft = scrollLeft;
|
|
3332
3349
|
reactData.lastScrollTime = Date.now();
|
|
3333
|
-
(
|
|
3334
|
-
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
3335
|
-
(0, _dom.setScrollLeft)(footerElem, scrollLeft);
|
|
3350
|
+
handleSyncScrollX(scrollLeft);
|
|
3336
3351
|
$xeTable.triggerScrollXEvent(evnt);
|
|
3337
3352
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
3338
3353
|
type: 'table',
|
|
@@ -3347,14 +3362,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3347
3362
|
leading: false,
|
|
3348
3363
|
trailing: true
|
|
3349
3364
|
});
|
|
3350
|
-
const
|
|
3351
|
-
const wrapperEl = evnt.currentTarget;
|
|
3365
|
+
const handleSyncScrollY = scrollTop => {
|
|
3352
3366
|
const tableBody = refTableBody.value;
|
|
3353
3367
|
const leftBody = refTableLeftBody.value;
|
|
3354
3368
|
const rightBody = refTableRightBody.value;
|
|
3355
3369
|
const bodyElem = tableBody.$el;
|
|
3356
3370
|
const leftElem = leftBody ? leftBody.$el : null;
|
|
3357
3371
|
const rightElem = rightBody ? rightBody.$el : null;
|
|
3372
|
+
(0, _dom.setScrollTop)(bodyElem, scrollTop);
|
|
3373
|
+
(0, _dom.setScrollTop)(leftElem, scrollTop);
|
|
3374
|
+
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
3375
|
+
};
|
|
3376
|
+
const scrollYEvent = evnt => {
|
|
3377
|
+
const wrapperEl = evnt.currentTarget;
|
|
3358
3378
|
const {
|
|
3359
3379
|
scrollTop,
|
|
3360
3380
|
scrollLeft
|
|
@@ -3363,9 +3383,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3363
3383
|
const isRollY = true;
|
|
3364
3384
|
internalData.lastScrollTop = scrollTop;
|
|
3365
3385
|
reactData.lastScrollTime = Date.now();
|
|
3366
|
-
(
|
|
3367
|
-
(0, _dom.setScrollTop)(leftElem, scrollTop);
|
|
3368
|
-
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
3386
|
+
handleSyncScrollY(scrollTop);
|
|
3369
3387
|
$xeTable.triggerScrollYEvent(evnt);
|
|
3370
3388
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
3371
3389
|
type: 'table',
|
|
@@ -3375,13 +3393,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3375
3393
|
});
|
|
3376
3394
|
};
|
|
3377
3395
|
let keyCtxTimeout;
|
|
3396
|
+
const dispatchEvent = (type, params, evnt) => {
|
|
3397
|
+
emit(type, createEvent(evnt, {
|
|
3398
|
+
$table: $xeTable,
|
|
3399
|
+
$grid: $xeGrid
|
|
3400
|
+
}, params));
|
|
3401
|
+
};
|
|
3378
3402
|
tableMethods = {
|
|
3379
|
-
dispatchEvent
|
|
3380
|
-
emit(type, createEvent(evnt, {
|
|
3381
|
-
$table: $xeTable,
|
|
3382
|
-
$grid: $xeGrid
|
|
3383
|
-
}, params));
|
|
3384
|
-
},
|
|
3403
|
+
dispatchEvent,
|
|
3385
3404
|
/**
|
|
3386
3405
|
* 重置表格的一切数据状态
|
|
3387
3406
|
*/
|
|
@@ -4895,7 +4914,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4895
4914
|
visible: false
|
|
4896
4915
|
});
|
|
4897
4916
|
if (visible) {
|
|
4898
|
-
|
|
4917
|
+
dispatchEvent('filter-visible', {
|
|
4899
4918
|
column,
|
|
4900
4919
|
property: column.field,
|
|
4901
4920
|
field: column.field,
|
|
@@ -5835,7 +5854,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5835
5854
|
tablePrivateMethods.preventEvent(evnt, 'event.clearAreas', {}, () => {
|
|
5836
5855
|
$xeTable.clearCellAreas();
|
|
5837
5856
|
$xeTable.clearCopyCellArea();
|
|
5838
|
-
|
|
5857
|
+
dispatchEvent('clear-cell-area-selection', {
|
|
5839
5858
|
cellAreas
|
|
5840
5859
|
}, evnt);
|
|
5841
5860
|
});
|
|
@@ -5897,7 +5916,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5897
5916
|
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
5898
5917
|
if (isEsc) {
|
|
5899
5918
|
tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
|
|
5900
|
-
|
|
5919
|
+
dispatchEvent('keydown-start', {}, evnt);
|
|
5901
5920
|
if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKeyboardEvent) {
|
|
5902
5921
|
$xeTable.handleKeyboardEvent(evnt);
|
|
5903
5922
|
} else if (actived.row || filterStore.visible || ctxMenuStore.visible) {
|
|
@@ -5919,8 +5938,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5919
5938
|
}
|
|
5920
5939
|
}
|
|
5921
5940
|
}
|
|
5922
|
-
|
|
5923
|
-
|
|
5941
|
+
dispatchEvent('keydown', {}, evnt);
|
|
5942
|
+
dispatchEvent('keydown-end', {}, evnt);
|
|
5924
5943
|
});
|
|
5925
5944
|
}
|
|
5926
5945
|
};
|
|
@@ -6112,7 +6131,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6112
6131
|
}
|
|
6113
6132
|
// 如果按下 del 键,更新表尾数据
|
|
6114
6133
|
tableMethods.updateFooter();
|
|
6115
|
-
|
|
6134
|
+
dispatchEvent('cell-delete-value', params, evnt);
|
|
6116
6135
|
}
|
|
6117
6136
|
}
|
|
6118
6137
|
} else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && (0, _utils.isEnableConf)(editConfig) && (selected.row || selected.column)) {
|
|
@@ -6138,7 +6157,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6138
6157
|
(0, _util.setCellValue)(selected.row, selected.column, null);
|
|
6139
6158
|
$xeTable.handleEdit(selected.args, evnt);
|
|
6140
6159
|
}
|
|
6141
|
-
|
|
6160
|
+
dispatchEvent('cell-backspace-value', params, evnt);
|
|
6142
6161
|
}
|
|
6143
6162
|
}
|
|
6144
6163
|
}
|
|
@@ -6192,7 +6211,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6192
6211
|
}
|
|
6193
6212
|
}
|
|
6194
6213
|
}
|
|
6195
|
-
|
|
6214
|
+
dispatchEvent('keydown', {}, evnt);
|
|
6196
6215
|
});
|
|
6197
6216
|
}
|
|
6198
6217
|
};
|
|
@@ -6219,7 +6238,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6219
6238
|
$xeTable.handlePasteCellAreaEvent(evnt);
|
|
6220
6239
|
}
|
|
6221
6240
|
}
|
|
6222
|
-
|
|
6241
|
+
dispatchEvent('paste', {}, evnt);
|
|
6223
6242
|
}
|
|
6224
6243
|
};
|
|
6225
6244
|
const handleGlobalCopyEvent = evnt => {
|
|
@@ -6245,7 +6264,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6245
6264
|
$xeTable.handleCopyCellAreaEvent(evnt);
|
|
6246
6265
|
}
|
|
6247
6266
|
}
|
|
6248
|
-
|
|
6267
|
+
dispatchEvent('copy', {}, evnt);
|
|
6249
6268
|
}
|
|
6250
6269
|
};
|
|
6251
6270
|
const handleGlobalCutEvent = evnt => {
|
|
@@ -6271,7 +6290,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6271
6290
|
$xeTable.handleCutCellAreaEvent(evnt);
|
|
6272
6291
|
}
|
|
6273
6292
|
}
|
|
6274
|
-
|
|
6293
|
+
dispatchEvent('cut', {}, evnt);
|
|
6275
6294
|
}
|
|
6276
6295
|
};
|
|
6277
6296
|
const handleGlobalResizeEvent = () => {
|
|
@@ -6296,6 +6315,50 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6296
6315
|
}
|
|
6297
6316
|
}
|
|
6298
6317
|
};
|
|
6318
|
+
const clearRowDropOrigin = () => {
|
|
6319
|
+
const el = refElem.value;
|
|
6320
|
+
if (el) {
|
|
6321
|
+
const clss = 'row--drag-origin';
|
|
6322
|
+
_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
|
|
6323
|
+
elem.draggable = false;
|
|
6324
|
+
(0, _dom.removeClass)(elem, clss);
|
|
6325
|
+
});
|
|
6326
|
+
}
|
|
6327
|
+
};
|
|
6328
|
+
const clearRowDropTarget = () => {
|
|
6329
|
+
const el = refElem.value;
|
|
6330
|
+
if (el) {
|
|
6331
|
+
const clss = 'row--drag-active-target';
|
|
6332
|
+
_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`), elem => {
|
|
6333
|
+
(0, _dom.removeClass)(elem, clss);
|
|
6334
|
+
});
|
|
6335
|
+
}
|
|
6336
|
+
};
|
|
6337
|
+
const showRowDropTip = evnt => {
|
|
6338
|
+
const rdTipEl = refRowDragTipElem.value;
|
|
6339
|
+
if (!rdTipEl) {
|
|
6340
|
+
return;
|
|
6341
|
+
}
|
|
6342
|
+
const el = refElem.value;
|
|
6343
|
+
if (!el) {
|
|
6344
|
+
return;
|
|
6345
|
+
}
|
|
6346
|
+
if (rdTipEl) {
|
|
6347
|
+
const wrapperRect = el.getBoundingClientRect();
|
|
6348
|
+
rdTipEl.style.display = 'block';
|
|
6349
|
+
rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
|
|
6350
|
+
rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`;
|
|
6351
|
+
}
|
|
6352
|
+
};
|
|
6353
|
+
const hideRowDropTip = () => {
|
|
6354
|
+
const rdTipEl = refRowDragTipElem.value;
|
|
6355
|
+
if (rdTipEl) {
|
|
6356
|
+
rdTipEl.style.display = '';
|
|
6357
|
+
}
|
|
6358
|
+
};
|
|
6359
|
+
const updateRowDropTipContent = tdEl => {
|
|
6360
|
+
reactData.dragTipText = tdEl.textContent || '';
|
|
6361
|
+
};
|
|
6299
6362
|
/**
|
|
6300
6363
|
* 处理显示 tooltip
|
|
6301
6364
|
* @param {Event} evnt 事件
|
|
@@ -7195,7 +7258,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7195
7258
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
7196
7259
|
tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
|
|
7197
7260
|
}
|
|
7198
|
-
|
|
7261
|
+
dispatchEvent('header-cell-click', Object.assign({
|
|
7199
7262
|
triggerResizable,
|
|
7200
7263
|
triggerSort,
|
|
7201
7264
|
triggerFilter,
|
|
@@ -7206,7 +7269,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7206
7269
|
}
|
|
7207
7270
|
},
|
|
7208
7271
|
triggerHeaderCellDblclickEvent(evnt, params) {
|
|
7209
|
-
|
|
7272
|
+
dispatchEvent('header-cell-dblclick', Object.assign({
|
|
7210
7273
|
cell: evnt.currentTarget
|
|
7211
7274
|
}, params), evnt);
|
|
7212
7275
|
},
|
|
@@ -7307,7 +7370,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7307
7370
|
}
|
|
7308
7371
|
}
|
|
7309
7372
|
}
|
|
7310
|
-
|
|
7373
|
+
dispatchEvent('cell-click', params, evnt);
|
|
7311
7374
|
},
|
|
7312
7375
|
/**
|
|
7313
7376
|
* 列双击点击事件
|
|
@@ -7339,7 +7402,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7339
7402
|
}
|
|
7340
7403
|
}
|
|
7341
7404
|
}
|
|
7342
|
-
|
|
7405
|
+
dispatchEvent('cell-dblclick', params, evnt);
|
|
7343
7406
|
},
|
|
7344
7407
|
handleToggleCheckRowEvent(evnt, params) {
|
|
7345
7408
|
const {
|
|
@@ -7395,7 +7458,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7395
7458
|
tableMethods.setAllCheckboxRow(false);
|
|
7396
7459
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
|
|
7397
7460
|
handleCheckedCheckboxRow(rangeRows, true, false);
|
|
7398
|
-
|
|
7461
|
+
dispatchEvent('checkbox-range-select', Object.assign({
|
|
7399
7462
|
rangeRecords: rangeRows
|
|
7400
7463
|
}, params), evnt);
|
|
7401
7464
|
return;
|
|
@@ -7407,7 +7470,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7407
7470
|
})) {
|
|
7408
7471
|
tablePrivateMethods.handleSelectRow(params, value);
|
|
7409
7472
|
tablePrivateMethods.checkSelectionStatus();
|
|
7410
|
-
|
|
7473
|
+
dispatchEvent('checkbox-change', Object.assign({
|
|
7411
7474
|
records: tableMethods.getCheckboxRecords(),
|
|
7412
7475
|
reserves: tableMethods.getCheckboxReserveRecords(),
|
|
7413
7476
|
indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
|
|
@@ -7461,7 +7524,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7461
7524
|
}
|
|
7462
7525
|
}
|
|
7463
7526
|
if (isChange) {
|
|
7464
|
-
|
|
7527
|
+
dispatchEvent('radio-change', Object.assign({
|
|
7465
7528
|
oldValue,
|
|
7466
7529
|
newValue
|
|
7467
7530
|
}, params), evnt);
|
|
@@ -7498,7 +7561,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7498
7561
|
})) {
|
|
7499
7562
|
tableMethods.setCurrentRow(newValue);
|
|
7500
7563
|
if (isChange) {
|
|
7501
|
-
|
|
7564
|
+
dispatchEvent('current-change', Object.assign({
|
|
7502
7565
|
oldValue,
|
|
7503
7566
|
newValue
|
|
7504
7567
|
}, params), evnt);
|
|
@@ -7531,7 +7594,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7531
7594
|
const columnIndex = tableMethods.getColumnIndex(column);
|
|
7532
7595
|
const $columnIndex = tableMethods.getVMColumnIndex(column);
|
|
7533
7596
|
tableMethods.setRowExpand(row, expanded);
|
|
7534
|
-
|
|
7597
|
+
dispatchEvent('toggle-row-expand', {
|
|
7535
7598
|
expanded,
|
|
7536
7599
|
column,
|
|
7537
7600
|
columnIndex,
|
|
@@ -7568,7 +7631,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7568
7631
|
const columnIndex = tableMethods.getColumnIndex(column);
|
|
7569
7632
|
const $columnIndex = tableMethods.getVMColumnIndex(column);
|
|
7570
7633
|
tableMethods.setTreeExpand(row, expanded);
|
|
7571
|
-
|
|
7634
|
+
dispatchEvent('toggle-tree-expand', {
|
|
7572
7635
|
expanded,
|
|
7573
7636
|
column,
|
|
7574
7637
|
columnIndex,
|
|
@@ -7612,9 +7675,153 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7612
7675
|
if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
|
|
7613
7676
|
$xeTable.handleSortEvent(evnt, params);
|
|
7614
7677
|
}
|
|
7615
|
-
|
|
7678
|
+
dispatchEvent('sort-change', params, evnt);
|
|
7679
|
+
}
|
|
7680
|
+
},
|
|
7681
|
+
handleRowDragDragstartEvent(evnt) {
|
|
7682
|
+
const img = new Image();
|
|
7683
|
+
if (evnt.dataTransfer) {
|
|
7684
|
+
evnt.dataTransfer.setDragImage(img, 0, 0);
|
|
7616
7685
|
}
|
|
7617
7686
|
},
|
|
7687
|
+
handleRowDragDragendEvent(evnt) {
|
|
7688
|
+
const {
|
|
7689
|
+
treeConfig
|
|
7690
|
+
} = props;
|
|
7691
|
+
const rowOpts = computeRowOpts.value;
|
|
7692
|
+
const {
|
|
7693
|
+
dragEndMethod
|
|
7694
|
+
} = rowOpts;
|
|
7695
|
+
const treeOpts = computeTreeOpts.value;
|
|
7696
|
+
const {
|
|
7697
|
+
transform
|
|
7698
|
+
} = treeOpts;
|
|
7699
|
+
const {
|
|
7700
|
+
dragRow
|
|
7701
|
+
} = reactData;
|
|
7702
|
+
const {
|
|
7703
|
+
afterFullData,
|
|
7704
|
+
tableFullData,
|
|
7705
|
+
prevDragRow,
|
|
7706
|
+
prevDragPos
|
|
7707
|
+
} = internalData;
|
|
7708
|
+
if (prevDragRow && dragRow) {
|
|
7709
|
+
// 判断是否有拖动
|
|
7710
|
+
if (prevDragRow !== dragRow) {
|
|
7711
|
+
Promise.resolve(dragEndMethod ? dragEndMethod({
|
|
7712
|
+
oldRow: dragRow,
|
|
7713
|
+
newRow: prevDragRow
|
|
7714
|
+
}) : true).then(status => {
|
|
7715
|
+
if (!status) {
|
|
7716
|
+
return;
|
|
7717
|
+
}
|
|
7718
|
+
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
7719
|
+
// 移出源位置
|
|
7720
|
+
const oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
|
|
7721
|
+
const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
|
|
7722
|
+
afterFullData.splice(oafIndex, 1);
|
|
7723
|
+
tableFullData.splice(otfIndex, 1);
|
|
7724
|
+
// 插新位置
|
|
7725
|
+
const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
|
|
7726
|
+
const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
|
|
7727
|
+
const nafIndex = pafIndex + dragOffsetIndex;
|
|
7728
|
+
const ntfIndex = ptfIndex + dragOffsetIndex;
|
|
7729
|
+
afterFullData.splice(nafIndex, 0, dragRow);
|
|
7730
|
+
tableFullData.splice(ntfIndex, 0, dragRow);
|
|
7731
|
+
reactData.isDragRowMove = true;
|
|
7732
|
+
$xeTable.cacheRowMap();
|
|
7733
|
+
$xeTable.updateScrollYStatus();
|
|
7734
|
+
$xeTable.handleTableData(treeConfig && transform);
|
|
7735
|
+
if (!(treeConfig && transform)) {
|
|
7736
|
+
$xeTable.updateAfterDataIndex();
|
|
7737
|
+
}
|
|
7738
|
+
$xeTable.updateFooter();
|
|
7739
|
+
$xeTable.checkSelectionStatus();
|
|
7740
|
+
if (reactData.scrollYLoad) {
|
|
7741
|
+
$xeTable.updateScrollYSpace();
|
|
7742
|
+
}
|
|
7743
|
+
(0, _vue.nextTick)().then(() => {
|
|
7744
|
+
$xeTable.updateCellAreas();
|
|
7745
|
+
return $xeTable.recalculate();
|
|
7746
|
+
});
|
|
7747
|
+
dispatchEvent('row-dragend', {
|
|
7748
|
+
oldRow: dragRow,
|
|
7749
|
+
newRow: prevDragRow,
|
|
7750
|
+
_index: {
|
|
7751
|
+
newIndex: nafIndex,
|
|
7752
|
+
oldIndex: oafIndex
|
|
7753
|
+
}
|
|
7754
|
+
}, evnt);
|
|
7755
|
+
}).catch(() => {});
|
|
7756
|
+
}
|
|
7757
|
+
}
|
|
7758
|
+
hideRowDropTip();
|
|
7759
|
+
clearRowDropOrigin();
|
|
7760
|
+
clearRowDropTarget();
|
|
7761
|
+
reactData.dragRow = null;
|
|
7762
|
+
setTimeout(() => {
|
|
7763
|
+
reactData.isDragRowMove = false;
|
|
7764
|
+
}, 500);
|
|
7765
|
+
},
|
|
7766
|
+
handleRowDragDragoverEvent(evnt) {
|
|
7767
|
+
const trEl = evnt.currentTarget;
|
|
7768
|
+
const rowid = trEl.getAttribute('rowid');
|
|
7769
|
+
const row = $xeTable.getRowById(rowid);
|
|
7770
|
+
clearRowDropTarget();
|
|
7771
|
+
if (row) {
|
|
7772
|
+
evnt.preventDefault();
|
|
7773
|
+
evnt.preventDefault();
|
|
7774
|
+
const {
|
|
7775
|
+
dragRow
|
|
7776
|
+
} = reactData;
|
|
7777
|
+
const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
|
|
7778
|
+
const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
|
|
7779
|
+
(0, _dom.addClass)(trEl, 'row--drag-active-target');
|
|
7780
|
+
trEl.setAttribute('drag-pos', dragPos);
|
|
7781
|
+
internalData.prevDragRow = row;
|
|
7782
|
+
internalData.prevDragPos = dragPos;
|
|
7783
|
+
dispatchEvent('row-dragover', {
|
|
7784
|
+
oldRow: dragRow,
|
|
7785
|
+
targetRow: row,
|
|
7786
|
+
dragPos
|
|
7787
|
+
}, evnt);
|
|
7788
|
+
}
|
|
7789
|
+
showRowDropTip(evnt);
|
|
7790
|
+
},
|
|
7791
|
+
handleCellDragMousedownEvent(evnt, params) {
|
|
7792
|
+
var _a;
|
|
7793
|
+
evnt.stopPropagation();
|
|
7794
|
+
const rowOpts = computeRowOpts.value;
|
|
7795
|
+
const {
|
|
7796
|
+
dragStartMethod
|
|
7797
|
+
} = rowOpts;
|
|
7798
|
+
const {
|
|
7799
|
+
row
|
|
7800
|
+
} = params;
|
|
7801
|
+
const dragEl = evnt.currentTarget;
|
|
7802
|
+
const tdEl = (_a = dragEl.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode;
|
|
7803
|
+
const trEl = tdEl.parentNode;
|
|
7804
|
+
reactData.isDragRowMove = false;
|
|
7805
|
+
clearRowDropOrigin();
|
|
7806
|
+
if (dragStartMethod && !dragStartMethod(params)) {
|
|
7807
|
+
trEl.draggable = false;
|
|
7808
|
+
reactData.dragRow = null;
|
|
7809
|
+
hideRowDropTip();
|
|
7810
|
+
return;
|
|
7811
|
+
}
|
|
7812
|
+
reactData.dragRow = row;
|
|
7813
|
+
trEl.draggable = true;
|
|
7814
|
+
(0, _dom.addClass)(trEl, 'row--drag-origin');
|
|
7815
|
+
showRowDropTip(evnt);
|
|
7816
|
+
updateRowDropTipContent(tdEl);
|
|
7817
|
+
dispatchEvent('row-dragstart', params, evnt);
|
|
7818
|
+
},
|
|
7819
|
+
handleCellDragMouseupEvent() {
|
|
7820
|
+
clearRowDropOrigin();
|
|
7821
|
+
hideRowDropTip();
|
|
7822
|
+
reactData.dragRow = null;
|
|
7823
|
+
reactData.isDragRowMove = false;
|
|
7824
|
+
},
|
|
7618
7825
|
/**
|
|
7619
7826
|
* 横向 X 可视渲染事件处理
|
|
7620
7827
|
*/
|
|
@@ -7646,14 +7853,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7646
7853
|
const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
|
|
7647
7854
|
const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
|
|
7648
7855
|
const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
|
|
7649
|
-
|
|
7856
|
+
const evntParams = Object.assign({
|
|
7650
7857
|
bodyHeight,
|
|
7651
7858
|
bodyWidth,
|
|
7652
7859
|
scrollHeight,
|
|
7653
7860
|
scrollWidth,
|
|
7654
7861
|
isX: isRollX,
|
|
7655
7862
|
isY: isRollY
|
|
7656
|
-
}, params)
|
|
7863
|
+
}, params);
|
|
7864
|
+
dispatchEvent('scroll', evntParams, evnt);
|
|
7657
7865
|
},
|
|
7658
7866
|
/**
|
|
7659
7867
|
* 纵向 Y 可视渲染事件处理
|
|
@@ -7830,14 +8038,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7830
8038
|
},
|
|
7831
8039
|
updateScrollXData() {
|
|
7832
8040
|
// reactData.tableColumn = []
|
|
7833
|
-
(0, _vue.nextTick)(() => {
|
|
8041
|
+
return (0, _vue.nextTick)().then(() => {
|
|
7834
8042
|
handleTableColumn();
|
|
7835
8043
|
tablePrivateMethods.updateScrollXSpace();
|
|
7836
8044
|
});
|
|
7837
8045
|
},
|
|
7838
8046
|
updateScrollYData() {
|
|
7839
8047
|
// reactData.tableData = []
|
|
7840
|
-
(0, _vue.nextTick)(() => {
|
|
8048
|
+
return (0, _vue.nextTick)().then(() => {
|
|
7841
8049
|
tablePrivateMethods.handleTableData();
|
|
7842
8050
|
calcCellHeight();
|
|
7843
8051
|
tablePrivateMethods.updateScrollYSpace();
|
|
@@ -8230,6 +8438,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8230
8438
|
key: 'tm',
|
|
8231
8439
|
ref: refTableMenu
|
|
8232
8440
|
}) : (0, _vue.createCommentVNode)(),
|
|
8441
|
+
/**
|
|
8442
|
+
* 拖拽提示
|
|
8443
|
+
*/
|
|
8444
|
+
rowOpts.drag ? (0, _vue.h)('div', {
|
|
8445
|
+
ref: refRowDragTipElem,
|
|
8446
|
+
class: 'vxe-table--row-drag-hint'
|
|
8447
|
+
}, getI18n('vxe.table.dragTip', [reactData.dragTipText])) : (0, _vue.createCommentVNode)(),
|
|
8233
8448
|
/**
|
|
8234
8449
|
* 提示相关
|
|
8235
8450
|
*/
|