vxe-table 4.12.0-beta.2 → 4.12.0-beta.20
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/grid/src/grid.js +61 -44
- package/es/locale/lang/ar-EG.js +7 -1
- package/es/locale/lang/de-DE.js +7 -1
- package/es/locale/lang/en-US.js +7 -1
- package/es/locale/lang/es-ES.js +7 -1
- package/es/locale/lang/fr-FR.js +7 -1
- package/es/locale/lang/hu-HU.js +7 -1
- package/es/locale/lang/hy-AM.js +7 -1
- package/es/locale/lang/id-ID.js +7 -1
- package/es/locale/lang/it-IT.js +7 -1
- package/es/locale/lang/ja-JP.js +7 -1
- package/es/locale/lang/ko-KR.js +7 -1
- package/es/locale/lang/nb-NO.js +7 -1
- package/es/locale/lang/pt-BR.js +7 -1
- package/es/locale/lang/ru-RU.js +7 -1
- package/es/locale/lang/th-TH.js +7 -1
- package/es/locale/lang/ug-CN.js +7 -1
- package/es/locale/lang/uk-UA.js +7 -1
- package/es/locale/lang/vi-VN.js +7 -1
- package/es/locale/lang/zh-CHT.js +7 -1
- package/es/locale/lang/zh-CN.js +7 -1
- package/es/style.css +1 -1
- package/es/table/module/filter/panel.js +12 -2
- package/es/table/module/keyboard/hook.js +47 -4
- package/es/table/render/index.js +91 -60
- package/es/table/src/body.js +12 -7
- package/es/table/src/cell.js +10 -9
- package/es/table/src/footer.js +9 -4
- package/es/table/src/header.js +2 -2
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +366 -182
- package/es/table/src/util.js +58 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/grid/src/grid.js +58 -48
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +1245 -12123
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +7 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +7 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +7 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -1
- package/lib/locale/lang/es-ES.js +7 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +7 -1
- package/lib/locale/lang/fr-FR.js +7 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +7 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +7 -1
- package/lib/locale/lang/hy-AM.js +7 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +7 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +7 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +7 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +7 -1
- package/lib/locale/lang/ko-KR.js +7 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +7 -1
- package/lib/locale/lang/nb-NO.js +7 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +7 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +7 -1
- package/lib/locale/lang/ru-RU.js +7 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +7 -1
- package/lib/locale/lang/th-TH.js +7 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +7 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +7 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +7 -1
- package/lib/locale/lang/vi-VN.js +7 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +7 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +7 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +7 -1
- package/lib/style.css +1 -1
- package/lib/table/module/filter/panel.js +8 -2
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +51 -4
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/render/index.js +100 -65
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +11 -6
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +15 -8
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +9 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +4 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +402 -188
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +65 -6
- package/lib/table/src/util.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/grid/src/grid.ts +65 -50
- package/packages/locale/lang/ar-EG.ts +7 -1
- package/packages/locale/lang/de-DE.ts +7 -1
- package/packages/locale/lang/en-US.ts +7 -1
- package/packages/locale/lang/es-ES.ts +7 -1
- package/packages/locale/lang/fr-FR.ts +7 -1
- package/packages/locale/lang/hu-HU.ts +7 -1
- package/packages/locale/lang/hy-AM.ts +7 -1
- package/packages/locale/lang/id-ID.ts +7 -1
- package/packages/locale/lang/it-IT.ts +7 -1
- package/packages/locale/lang/ja-JP.ts +7 -1
- package/packages/locale/lang/ko-KR.ts +7 -1
- package/packages/locale/lang/nb-NO.ts +7 -1
- package/packages/locale/lang/pt-BR.ts +7 -1
- package/packages/locale/lang/ru-RU.ts +7 -1
- package/packages/locale/lang/th-TH.ts +7 -1
- package/packages/locale/lang/ug-CN.ts +7 -1
- package/packages/locale/lang/uk-UA.ts +7 -1
- package/packages/locale/lang/vi-VN.ts +7 -1
- package/packages/locale/lang/zh-CHT.ts +7 -1
- package/packages/locale/lang/zh-CN.ts +7 -1
- package/packages/table/module/filter/panel.ts +12 -2
- package/packages/table/module/keyboard/hook.ts +47 -6
- package/packages/table/render/index.ts +90 -59
- package/packages/table/src/body.ts +11 -6
- package/packages/table/src/cell.ts +10 -9
- package/packages/table/src/footer.ts +9 -4
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/props.ts +4 -0
- package/packages/table/src/table.ts +373 -183
- package/packages/table/src/util.ts +66 -3
- /package/es/{iconfont.1741080000843.ttf → iconfont.1742353689933.ttf} +0 -0
- /package/es/{iconfont.1741080000843.woff → iconfont.1742353689933.woff} +0 -0
- /package/es/{iconfont.1741080000843.woff2 → iconfont.1742353689933.woff2} +0 -0
- /package/lib/{iconfont.1741080000843.ttf → iconfont.1742353689933.ttf} +0 -0
- /package/lib/{iconfont.1741080000843.woff → iconfont.1742353689933.woff} +0 -0
- /package/lib/{iconfont.1741080000843.woff2 → iconfont.1742353689933.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -9,7 +9,7 @@ import TableHeaderComponent from './header';
|
|
|
9
9
|
import TableFooterComponent from './footer';
|
|
10
10
|
import tableProps from './props';
|
|
11
11
|
import tableEmits from './emits';
|
|
12
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth } from './util';
|
|
12
|
+
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId } from './util';
|
|
13
13
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
14
14
|
import { warnLog, errLog } from '../../ui/src/log';
|
|
15
15
|
import TableCustomPanelComponent from '../module/custom/panel';
|
|
@@ -18,6 +18,7 @@ import TableImportPanelComponent from '../module/export/import-panel';
|
|
|
18
18
|
import TableExportPanelComponent from '../module/export/export-panel';
|
|
19
19
|
import TableMenuPanelComponent from '../module/menu/panel';
|
|
20
20
|
const { getConfig, getIcon, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI;
|
|
21
|
+
const supportMaxRow = 5e6;
|
|
21
22
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
22
23
|
const maxYHeight = 5e6;
|
|
23
24
|
const maxXWidth = 5e6;
|
|
@@ -464,6 +465,9 @@ export default defineComponent({
|
|
|
464
465
|
const computeColumnOpts = computed(() => {
|
|
465
466
|
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
|
|
466
467
|
});
|
|
468
|
+
const computeCurrentColumnOpts = computed(() => {
|
|
469
|
+
return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
|
|
470
|
+
});
|
|
467
471
|
const computeCellOpts = computed(() => {
|
|
468
472
|
return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
|
|
469
473
|
});
|
|
@@ -476,6 +480,9 @@ export default defineComponent({
|
|
|
476
480
|
const computeRowOpts = computed(() => {
|
|
477
481
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
478
482
|
});
|
|
483
|
+
const computeCurrentRowOpts = computed(() => {
|
|
484
|
+
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
|
|
485
|
+
});
|
|
479
486
|
const computeRowDragOpts = computed(() => {
|
|
480
487
|
return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
|
|
481
488
|
});
|
|
@@ -734,6 +741,7 @@ export default defineComponent({
|
|
|
734
741
|
computeScrollbarXToTop,
|
|
735
742
|
computeScrollbarYToLeft,
|
|
736
743
|
computeColumnOpts,
|
|
744
|
+
computeCurrentColumnOpts,
|
|
737
745
|
computeScrollXThreshold,
|
|
738
746
|
computeScrollYThreshold,
|
|
739
747
|
computeDefaultRowHeight,
|
|
@@ -741,6 +749,7 @@ export default defineComponent({
|
|
|
741
749
|
computeHeaderCellOpts,
|
|
742
750
|
computeFooterCellOpts,
|
|
743
751
|
computeRowOpts,
|
|
752
|
+
computeCurrentRowOpts,
|
|
744
753
|
computeRowDragOpts,
|
|
745
754
|
computeColumnDragOpts,
|
|
746
755
|
computeResizeOpts,
|
|
@@ -1198,7 +1207,7 @@ export default defineComponent({
|
|
|
1198
1207
|
}
|
|
1199
1208
|
else {
|
|
1200
1209
|
if ((storage && !type) || (columnOpts.drag && (isCrossDrag || isSelfToChildDrag))) {
|
|
1201
|
-
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field
|
|
1210
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`]);
|
|
1202
1211
|
}
|
|
1203
1212
|
}
|
|
1204
1213
|
if (!hasFixed && fixed) {
|
|
@@ -2238,6 +2247,8 @@ export default defineComponent({
|
|
|
2238
2247
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2239
2248
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
2240
2249
|
const { checkField, reserve, checkMethod } = checkboxOpts;
|
|
2250
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
2251
|
+
// indeterminateField 仅支持读取
|
|
2241
2252
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
2242
2253
|
const selectRowMaps = {};
|
|
2243
2254
|
/**
|
|
@@ -2278,7 +2289,8 @@ export default defineComponent({
|
|
|
2278
2289
|
*/
|
|
2279
2290
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2280
2291
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2281
|
-
|
|
2292
|
+
const rowid = handleGetRowId(row);
|
|
2293
|
+
selectRowMaps[rowid] = row;
|
|
2282
2294
|
}
|
|
2283
2295
|
}, { children: childrenField });
|
|
2284
2296
|
}
|
|
@@ -2289,7 +2301,7 @@ export default defineComponent({
|
|
|
2289
2301
|
*/
|
|
2290
2302
|
if (!isForce && checkMethod) {
|
|
2291
2303
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2292
|
-
const rowid =
|
|
2304
|
+
const rowid = handleGetRowId(row);
|
|
2293
2305
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2294
2306
|
selectRowMaps[rowid] = row;
|
|
2295
2307
|
}
|
|
@@ -2306,7 +2318,7 @@ export default defineComponent({
|
|
|
2306
2318
|
*/
|
|
2307
2319
|
if (!isForce && checkMethod) {
|
|
2308
2320
|
afterFullData.forEach((row) => {
|
|
2309
|
-
const rowid =
|
|
2321
|
+
const rowid = handleGetRowId(row);
|
|
2310
2322
|
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
2311
2323
|
selectRowMaps[rowid] = row;
|
|
2312
2324
|
}
|
|
@@ -2314,7 +2326,8 @@ export default defineComponent({
|
|
|
2314
2326
|
}
|
|
2315
2327
|
else {
|
|
2316
2328
|
afterFullData.forEach(row => {
|
|
2317
|
-
|
|
2329
|
+
const rowid = handleGetRowId(row);
|
|
2330
|
+
selectRowMaps[rowid] = row;
|
|
2318
2331
|
});
|
|
2319
2332
|
}
|
|
2320
2333
|
}
|
|
@@ -2326,7 +2339,7 @@ export default defineComponent({
|
|
|
2326
2339
|
*/
|
|
2327
2340
|
if (!isForce && checkMethod) {
|
|
2328
2341
|
afterFullData.forEach((row) => {
|
|
2329
|
-
const rowid =
|
|
2342
|
+
const rowid = handleGetRowId(row);
|
|
2330
2343
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2331
2344
|
selectRowMaps[rowid] = row;
|
|
2332
2345
|
}
|
|
@@ -2651,7 +2664,10 @@ export default defineComponent({
|
|
|
2651
2664
|
const { transform } = treeOpts;
|
|
2652
2665
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2653
2666
|
let treeData = [];
|
|
2654
|
-
let fullData = reactive(datas ? datas.slice(0) : []); //
|
|
2667
|
+
let fullData = reactive(datas ? datas.slice(0) : []); // 转为响应式数据
|
|
2668
|
+
if (fullData.length > supportMaxRow) {
|
|
2669
|
+
errLog('vxe.error.errMaxRow', [supportMaxRow]);
|
|
2670
|
+
}
|
|
2655
2671
|
if (treeConfig) {
|
|
2656
2672
|
if (transform) {
|
|
2657
2673
|
// 树结构自动转换
|
|
@@ -2746,7 +2762,7 @@ export default defineComponent({
|
|
|
2746
2762
|
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
2747
2763
|
// }
|
|
2748
2764
|
if (props.spanMethod) {
|
|
2749
|
-
|
|
2765
|
+
errLog('vxe.error.scrollErrProp', ['table.span-method']);
|
|
2750
2766
|
}
|
|
2751
2767
|
}
|
|
2752
2768
|
handleReserveStatus();
|
|
@@ -3138,9 +3154,9 @@ export default defineComponent({
|
|
|
3138
3154
|
handleCheckedAllCheckboxRow(value);
|
|
3139
3155
|
if (evnt) {
|
|
3140
3156
|
dispatchEvent('checkbox-all', {
|
|
3141
|
-
records: $xeTable.getCheckboxRecords(),
|
|
3142
|
-
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
3143
|
-
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
3157
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
3158
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
3159
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
3144
3160
|
checked: value
|
|
3145
3161
|
}, evnt);
|
|
3146
3162
|
}
|
|
@@ -3438,6 +3454,9 @@ export default defineComponent({
|
|
|
3438
3454
|
};
|
|
3439
3455
|
tableMethods = {
|
|
3440
3456
|
dispatchEvent,
|
|
3457
|
+
getEl() {
|
|
3458
|
+
return refElem.value;
|
|
3459
|
+
},
|
|
3441
3460
|
/**
|
|
3442
3461
|
* 重置表格的一切数据状态
|
|
3443
3462
|
*/
|
|
@@ -3740,12 +3759,14 @@ export default defineComponent({
|
|
|
3740
3759
|
*/
|
|
3741
3760
|
revertData(rows, field) {
|
|
3742
3761
|
const { keepSource, treeConfig } = props;
|
|
3743
|
-
const {
|
|
3762
|
+
const { editStore } = reactData;
|
|
3763
|
+
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData;
|
|
3764
|
+
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
3744
3765
|
const treeOpts = computeTreeOpts.value;
|
|
3745
3766
|
const { transform } = treeOpts;
|
|
3746
3767
|
if (!keepSource) {
|
|
3747
3768
|
if (process.env.NODE_ENV === 'development') {
|
|
3748
|
-
|
|
3769
|
+
errLog('vxe.error.reqProp', ['keep-source']);
|
|
3749
3770
|
}
|
|
3750
3771
|
return nextTick();
|
|
3751
3772
|
}
|
|
@@ -3760,23 +3781,24 @@ export default defineComponent({
|
|
|
3760
3781
|
}
|
|
3761
3782
|
let reDelFlag = false;
|
|
3762
3783
|
if (targetRows.length) {
|
|
3763
|
-
targetRows.forEach((
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3784
|
+
targetRows.forEach((item) => {
|
|
3785
|
+
const rowid = getRowid($xeTable, item);
|
|
3786
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
3787
|
+
if (rowRest) {
|
|
3788
|
+
const row = rowRest.row;
|
|
3789
|
+
if (!$xeTable.isInsertByRow(row)) {
|
|
3790
|
+
const oRow = sourceDataRowIdData[rowid];
|
|
3791
|
+
if (oRow && row) {
|
|
3792
|
+
if (field) {
|
|
3793
|
+
XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true));
|
|
3794
|
+
}
|
|
3795
|
+
else {
|
|
3796
|
+
XEUtils.destructuring(row, XEUtils.clone(oRow, true));
|
|
3797
|
+
}
|
|
3798
|
+
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3799
|
+
delete removeTempMaps[rowid];
|
|
3800
|
+
tableFullData.unshift(row);
|
|
3801
|
+
afterFullData.unshift(row);
|
|
3780
3802
|
reDelFlag = true;
|
|
3781
3803
|
}
|
|
3782
3804
|
}
|
|
@@ -3786,6 +3808,7 @@ export default defineComponent({
|
|
|
3786
3808
|
}
|
|
3787
3809
|
if (rows) {
|
|
3788
3810
|
if (reDelFlag) {
|
|
3811
|
+
editStore.removeMaps = removeTempMaps;
|
|
3789
3812
|
$xeTable.updateFooter();
|
|
3790
3813
|
$xeTable.cacheRowMap(false);
|
|
3791
3814
|
$xeTable.handleTableData(treeConfig && transform);
|
|
@@ -3938,18 +3961,20 @@ export default defineComponent({
|
|
|
3938
3961
|
},
|
|
3939
3962
|
/**
|
|
3940
3963
|
* 检查行或列数据是否发生改变
|
|
3941
|
-
* @param {Row}
|
|
3964
|
+
* @param {Row} rowidOrRow 行对象、行主键
|
|
3942
3965
|
* @param {String} field 字段名
|
|
3943
3966
|
*/
|
|
3944
|
-
isUpdateByRow(
|
|
3967
|
+
isUpdateByRow(rowidOrRow, field) {
|
|
3945
3968
|
const { keepSource } = props;
|
|
3946
3969
|
const { tableFullColumn, fullDataRowIdData, sourceDataRowIdData } = internalData;
|
|
3947
3970
|
if (keepSource) {
|
|
3948
|
-
const rowid = getRowid($xeTable,
|
|
3971
|
+
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
3972
|
+
const rowRest = fullDataRowIdData[rowid];
|
|
3949
3973
|
// 新增的数据不需要检测
|
|
3950
|
-
if (!
|
|
3974
|
+
if (!rowRest) {
|
|
3951
3975
|
return false;
|
|
3952
3976
|
}
|
|
3977
|
+
const row = rowRest.row;
|
|
3953
3978
|
const oRow = sourceDataRowIdData[rowid];
|
|
3954
3979
|
if (oRow) {
|
|
3955
3980
|
if (arguments.length > 1) {
|
|
@@ -4013,6 +4038,94 @@ export default defineComponent({
|
|
|
4013
4038
|
tableColumn: reactData.tableColumn.slice(0)
|
|
4014
4039
|
};
|
|
4015
4040
|
},
|
|
4041
|
+
/**
|
|
4042
|
+
* 移动列到指定列的位置
|
|
4043
|
+
* @param fieldOrColumn
|
|
4044
|
+
* @param targetFieldOrColumn
|
|
4045
|
+
* @param options
|
|
4046
|
+
*/
|
|
4047
|
+
moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
|
|
4048
|
+
const { fullColumnIdData, visibleColumn } = internalData;
|
|
4049
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options);
|
|
4050
|
+
const dragCol = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
4051
|
+
let prevDragCol = null;
|
|
4052
|
+
const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
|
|
4053
|
+
let defPos = 'left';
|
|
4054
|
+
if (XEUtils.isNumber(targetFieldOrColumn)) {
|
|
4055
|
+
if (colRest && targetFieldOrColumn) {
|
|
4056
|
+
let currList = colRest.items;
|
|
4057
|
+
let offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4058
|
+
if (isCrossDrag) {
|
|
4059
|
+
currList = visibleColumn;
|
|
4060
|
+
offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4061
|
+
}
|
|
4062
|
+
if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
|
|
4063
|
+
prevDragCol = currList[offsetIndex];
|
|
4064
|
+
}
|
|
4065
|
+
if (targetFieldOrColumn > 0) {
|
|
4066
|
+
defPos = 'right';
|
|
4067
|
+
}
|
|
4068
|
+
}
|
|
4069
|
+
}
|
|
4070
|
+
else {
|
|
4071
|
+
prevDragCol = handleFieldOrColumn($xeTable, targetFieldOrColumn);
|
|
4072
|
+
const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
|
|
4073
|
+
if (colRest && targetColRest) {
|
|
4074
|
+
if (targetColRest._index > colRest._index) {
|
|
4075
|
+
defPos = 'right';
|
|
4076
|
+
}
|
|
4077
|
+
}
|
|
4078
|
+
}
|
|
4079
|
+
return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
|
|
4080
|
+
},
|
|
4081
|
+
/**
|
|
4082
|
+
* 移动行到指定行的位置
|
|
4083
|
+
* @param rowidOrRow
|
|
4084
|
+
* @param targetRowidOrRow
|
|
4085
|
+
* @param options
|
|
4086
|
+
*/
|
|
4087
|
+
moveRowTo(rowidOrRow, targetRowidOrRow, options) {
|
|
4088
|
+
const { treeConfig } = props;
|
|
4089
|
+
const { fullAllDataRowIdData, afterFullData } = internalData;
|
|
4090
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options);
|
|
4091
|
+
const treeOpts = computeTreeOpts.value;
|
|
4092
|
+
const dragRow = handleRowidOrRow($xeTable, rowidOrRow);
|
|
4093
|
+
let prevDragRow = null;
|
|
4094
|
+
let defPos = 'top';
|
|
4095
|
+
const rowRest = dragRow ? fullAllDataRowIdData[getRowid($xeTable, dragRow)] : null;
|
|
4096
|
+
if (XEUtils.isNumber(targetRowidOrRow)) {
|
|
4097
|
+
if (rowRest && targetRowidOrRow) {
|
|
4098
|
+
let currList = afterFullData;
|
|
4099
|
+
let offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4100
|
+
if (treeConfig) {
|
|
4101
|
+
currList = rowRest.items;
|
|
4102
|
+
if (treeOpts.transform) {
|
|
4103
|
+
offsetIndex = rowRest.treeIndex + targetRowidOrRow;
|
|
4104
|
+
if (isCrossDrag) {
|
|
4105
|
+
currList = afterFullData;
|
|
4106
|
+
offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4107
|
+
}
|
|
4108
|
+
}
|
|
4109
|
+
}
|
|
4110
|
+
if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
|
|
4111
|
+
prevDragRow = currList[offsetIndex];
|
|
4112
|
+
}
|
|
4113
|
+
if (targetRowidOrRow > 0) {
|
|
4114
|
+
defPos = 'bottom';
|
|
4115
|
+
}
|
|
4116
|
+
}
|
|
4117
|
+
}
|
|
4118
|
+
else {
|
|
4119
|
+
prevDragRow = handleRowidOrRow($xeTable, targetRowidOrRow);
|
|
4120
|
+
const targetRowRest = prevDragRow ? fullAllDataRowIdData[getRowid($xeTable, prevDragRow)] : null;
|
|
4121
|
+
if (rowRest && targetRowRest) {
|
|
4122
|
+
if (targetRowRest._index > rowRest._index) {
|
|
4123
|
+
defPos = 'bottom';
|
|
4124
|
+
}
|
|
4125
|
+
}
|
|
4126
|
+
}
|
|
4127
|
+
return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
|
|
4128
|
+
},
|
|
4016
4129
|
/**
|
|
4017
4130
|
* 获取表格的全量列
|
|
4018
4131
|
*/
|
|
@@ -4032,6 +4145,7 @@ export default defineComponent({
|
|
|
4032
4145
|
*/
|
|
4033
4146
|
getCheckboxRecords(isFull) {
|
|
4034
4147
|
const { treeConfig } = props;
|
|
4148
|
+
const { selectCheckboxMaps } = reactData;
|
|
4035
4149
|
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData;
|
|
4036
4150
|
const treeOpts = computeTreeOpts.value;
|
|
4037
4151
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
@@ -4039,17 +4153,17 @@ export default defineComponent({
|
|
|
4039
4153
|
const { checkField } = checkboxOpts;
|
|
4040
4154
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4041
4155
|
let rowList = [];
|
|
4042
|
-
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
|
|
4043
4156
|
if (checkField) {
|
|
4044
4157
|
if (treeConfig) {
|
|
4158
|
+
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
|
|
4045
4159
|
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildrenField : childrenField });
|
|
4046
4160
|
}
|
|
4047
4161
|
else {
|
|
4162
|
+
const currTableData = isFull ? tableFullData : afterFullData;
|
|
4048
4163
|
rowList = currTableData.filter((row) => XEUtils.get(row, checkField));
|
|
4049
4164
|
}
|
|
4050
4165
|
}
|
|
4051
4166
|
else {
|
|
4052
|
-
const { selectCheckboxMaps } = reactData;
|
|
4053
4167
|
XEUtils.each(selectCheckboxMaps, (row, rowid) => {
|
|
4054
4168
|
if (isFull) {
|
|
4055
4169
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4734,6 +4848,7 @@ export default defineComponent({
|
|
|
4734
4848
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4735
4849
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4736
4850
|
const { checkField, reserve } = checkboxOpts;
|
|
4851
|
+
// indeterminateField 仅支持读取
|
|
4737
4852
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
4738
4853
|
if (checkField) {
|
|
4739
4854
|
const handleClearChecked = (item) => {
|
|
@@ -4863,13 +4978,20 @@ export default defineComponent({
|
|
|
4863
4978
|
* 用于当前列,设置某列行为高亮状态
|
|
4864
4979
|
*/
|
|
4865
4980
|
setCurrentColumn(fieldOrColumn) {
|
|
4981
|
+
const { mouseConfig } = props;
|
|
4982
|
+
const mouseOpts = computeMouseOpts.value;
|
|
4983
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected;
|
|
4866
4984
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
4867
4985
|
if (column) {
|
|
4868
|
-
|
|
4869
|
-
tableMethods.clearCurrentColumn();
|
|
4986
|
+
$xeTable.clearCurrentColumn();
|
|
4870
4987
|
reactData.currentColumn = column;
|
|
4871
4988
|
}
|
|
4872
|
-
return nextTick()
|
|
4989
|
+
return nextTick().then(() => {
|
|
4990
|
+
// 更新状选中态
|
|
4991
|
+
if (isMouseSelected) {
|
|
4992
|
+
$xeTable.addCellSelectedClass();
|
|
4993
|
+
}
|
|
4994
|
+
});
|
|
4873
4995
|
},
|
|
4874
4996
|
/**
|
|
4875
4997
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -5090,7 +5212,13 @@ export default defineComponent({
|
|
|
5090
5212
|
visible: false
|
|
5091
5213
|
});
|
|
5092
5214
|
if (visible) {
|
|
5093
|
-
dispatchEvent('filter-visible', {
|
|
5215
|
+
dispatchEvent('filter-visible', {
|
|
5216
|
+
column,
|
|
5217
|
+
property: column.field,
|
|
5218
|
+
field: column.field,
|
|
5219
|
+
filterList: () => $xeTable.getCheckedFilters(),
|
|
5220
|
+
visible: false
|
|
5221
|
+
}, null);
|
|
5094
5222
|
}
|
|
5095
5223
|
return nextTick();
|
|
5096
5224
|
},
|
|
@@ -5714,7 +5842,13 @@ export default defineComponent({
|
|
|
5714
5842
|
const { id } = props;
|
|
5715
5843
|
const customOpts = computeCustomOpts.value;
|
|
5716
5844
|
const { collectColumn } = internalData;
|
|
5717
|
-
const { checkMethod } = customOpts;
|
|
5845
|
+
const { storage, checkMethod } = customOpts;
|
|
5846
|
+
const isAllCustom = storage === true;
|
|
5847
|
+
const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
|
|
5848
|
+
const isCustomResizable = isAllCustom || storageOpts.resizable;
|
|
5849
|
+
const isCustomVisible = isAllCustom || storageOpts.visible;
|
|
5850
|
+
const isCustomFixed = isAllCustom || storageOpts.fixed;
|
|
5851
|
+
const isCustomSort = isAllCustom || storageOpts.sort;
|
|
5718
5852
|
const resizableData = {};
|
|
5719
5853
|
const sortData = {};
|
|
5720
5854
|
const visibleData = {};
|
|
@@ -5734,44 +5868,34 @@ export default defineComponent({
|
|
|
5734
5868
|
let hasFixed = 0;
|
|
5735
5869
|
let hasVisible = 0;
|
|
5736
5870
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
5871
|
+
const colKey = column.getKey();
|
|
5872
|
+
if (!colKey) {
|
|
5873
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`]);
|
|
5874
|
+
return;
|
|
5875
|
+
}
|
|
5737
5876
|
// 只支持一级
|
|
5738
5877
|
if (!parentColumn) {
|
|
5739
|
-
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
hasSort = 1;
|
|
5743
|
-
sortData[colKey] = column.renderSortNumber;
|
|
5744
|
-
}
|
|
5745
|
-
});
|
|
5746
|
-
if (column.fixed !== column.defaultFixed) {
|
|
5747
|
-
const colKey = column.getKey();
|
|
5748
|
-
if (colKey) {
|
|
5749
|
-
hasFixed = 1;
|
|
5750
|
-
fixedData[colKey] = column.fixed;
|
|
5751
|
-
}
|
|
5878
|
+
if (isCustomSort) {
|
|
5879
|
+
hasSort = 1;
|
|
5880
|
+
sortData[colKey] = column.renderSortNumber;
|
|
5752
5881
|
}
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
if (colKey) {
|
|
5757
|
-
hasResizable = 1;
|
|
5758
|
-
resizableData[colKey] = column.renderWidth;
|
|
5882
|
+
if (isCustomFixed && column.fixed !== column.defaultFixed) {
|
|
5883
|
+
hasFixed = 1;
|
|
5884
|
+
fixedData[colKey] = column.fixed;
|
|
5759
5885
|
}
|
|
5760
5886
|
}
|
|
5761
|
-
if (
|
|
5887
|
+
if (isCustomResizable && column.resizeWidth) {
|
|
5888
|
+
hasResizable = 1;
|
|
5889
|
+
resizableData[colKey] = column.renderWidth;
|
|
5890
|
+
}
|
|
5891
|
+
if (isCustomVisible && (!checkMethod || checkMethod({ column }))) {
|
|
5762
5892
|
if (!column.visible && column.defaultVisible) {
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
hasVisible = 1;
|
|
5766
|
-
visibleData[colKey] = false;
|
|
5767
|
-
}
|
|
5893
|
+
hasVisible = 1;
|
|
5894
|
+
visibleData[colKey] = false;
|
|
5768
5895
|
}
|
|
5769
5896
|
else if (column.visible && !column.defaultVisible) {
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
hasVisible = 1;
|
|
5773
|
-
visibleData[colKey] = true;
|
|
5774
|
-
}
|
|
5897
|
+
hasVisible = 1;
|
|
5898
|
+
visibleData[colKey] = true;
|
|
5775
5899
|
}
|
|
5776
5900
|
}
|
|
5777
5901
|
});
|
|
@@ -6015,7 +6139,7 @@ export default defineComponent({
|
|
|
6015
6139
|
// 该行为只对当前激活的表格有效
|
|
6016
6140
|
if (internalData.isActivated) {
|
|
6017
6141
|
tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
|
|
6018
|
-
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow } = props;
|
|
6142
|
+
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props;
|
|
6019
6143
|
const { ctxMenuStore, editStore, currentRow } = reactData;
|
|
6020
6144
|
const { afterFullData } = internalData;
|
|
6021
6145
|
const isMenu = computeIsMenu.value;
|
|
@@ -6026,6 +6150,7 @@ export default defineComponent({
|
|
|
6026
6150
|
const treeOpts = computeTreeOpts.value;
|
|
6027
6151
|
const menuList = computeMenuList.value;
|
|
6028
6152
|
const rowOpts = computeRowOpts.value;
|
|
6153
|
+
const columnOpts = computeColumnOpts.value;
|
|
6029
6154
|
const { selected, actived } = editStore;
|
|
6030
6155
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6031
6156
|
const keyCode = evnt.keyCode;
|
|
@@ -6199,10 +6324,14 @@ export default defineComponent({
|
|
|
6199
6324
|
if (selected.row && selected.column) {
|
|
6200
6325
|
$xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
6201
6326
|
}
|
|
6202
|
-
|
|
6203
|
-
|
|
6327
|
+
// 当前行按键上下移动
|
|
6328
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
6204
6329
|
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
6205
6330
|
}
|
|
6331
|
+
// 当前行按键左右移动
|
|
6332
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
6333
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
|
|
6334
|
+
}
|
|
6206
6335
|
}
|
|
6207
6336
|
}
|
|
6208
6337
|
else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
@@ -6649,7 +6778,16 @@ export default defineComponent({
|
|
|
6649
6778
|
if (el) {
|
|
6650
6779
|
const parentElem = el.parentNode;
|
|
6651
6780
|
const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0;
|
|
6652
|
-
|
|
6781
|
+
let parentWrapperHeight = 0;
|
|
6782
|
+
if (parentElem) {
|
|
6783
|
+
if ($xeGrid && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
|
|
6784
|
+
parentWrapperHeight = $xeGrid.getParentHeight();
|
|
6785
|
+
}
|
|
6786
|
+
else {
|
|
6787
|
+
parentWrapperHeight = parentElem.clientHeight;
|
|
6788
|
+
}
|
|
6789
|
+
}
|
|
6790
|
+
return Math.floor(parentWrapperHeight - parentPaddingSize);
|
|
6653
6791
|
}
|
|
6654
6792
|
return 0;
|
|
6655
6793
|
},
|
|
@@ -6741,32 +6879,17 @@ export default defineComponent({
|
|
|
6741
6879
|
const treeOpts = computeTreeOpts.value;
|
|
6742
6880
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6743
6881
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
6744
|
-
const
|
|
6882
|
+
const { lazy } = treeOpts;
|
|
6745
6883
|
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
6746
6884
|
const fullDataRowIdMaps = {};
|
|
6747
6885
|
const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
|
|
6748
|
-
const
|
|
6749
|
-
|
|
6750
|
-
|
|
6751
|
-
const level = nodes ? nodes.length - 1 : 0;
|
|
6752
|
-
if (eqEmptyValue(rowid)) {
|
|
6753
|
-
rowid = getRowUniqueId();
|
|
6754
|
-
XEUtils.set(row, rowkey, rowid);
|
|
6755
|
-
}
|
|
6756
|
-
if (treeConfig && treeOpts.lazy) {
|
|
6757
|
-
const treeExpRest = treeExpandedMaps[rowid];
|
|
6758
|
-
if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
6759
|
-
row[childrenField] = null;
|
|
6760
|
-
}
|
|
6761
|
-
if (treeExpRest) {
|
|
6762
|
-
if (!row[childrenField] || !row[childrenField].length) {
|
|
6763
|
-
delete treeTempExpandedMaps[rowid];
|
|
6764
|
-
}
|
|
6765
|
-
}
|
|
6766
|
-
}
|
|
6767
|
-
let rowRest = fullAllDataRowIdData[rowid];
|
|
6886
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
6887
|
+
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
6888
|
+
let rowRest = fullAllDataRowIdMaps[rowid];
|
|
6768
6889
|
if (!rowRest) {
|
|
6769
6890
|
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
|
|
6891
|
+
fullDataRowIdMaps[rowid] = rowRest;
|
|
6892
|
+
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
6770
6893
|
}
|
|
6771
6894
|
rowRest.treeLoaded = false;
|
|
6772
6895
|
rowRest.expandLoaded = false;
|
|
@@ -6774,15 +6897,32 @@ export default defineComponent({
|
|
|
6774
6897
|
rowRest.items = items;
|
|
6775
6898
|
rowRest.parent = parentRow;
|
|
6776
6899
|
rowRest.level = level;
|
|
6777
|
-
rowRest.index =
|
|
6900
|
+
rowRest.index = currIndex;
|
|
6901
|
+
rowRest.treeIndex = index;
|
|
6778
6902
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
6779
6903
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
6780
6904
|
};
|
|
6781
6905
|
if (treeConfig) {
|
|
6782
|
-
XEUtils.eachTree(tableFullTreeData,
|
|
6906
|
+
XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
6907
|
+
const rowid = handleUpdateRowId(row);
|
|
6908
|
+
if (treeConfig && lazy) {
|
|
6909
|
+
const treeExpRest = treeTempExpandedMaps[rowid];
|
|
6910
|
+
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
6911
|
+
row[childrenField] = null;
|
|
6912
|
+
}
|
|
6913
|
+
if (treeExpRest) {
|
|
6914
|
+
if (!row[childrenField] || !row[childrenField].length) {
|
|
6915
|
+
delete treeTempExpandedMaps[rowid];
|
|
6916
|
+
}
|
|
6917
|
+
}
|
|
6918
|
+
}
|
|
6919
|
+
handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, toTreePathSeq(path));
|
|
6920
|
+
}, { children: childrenField });
|
|
6783
6921
|
}
|
|
6784
6922
|
else {
|
|
6785
|
-
tableFullData.forEach(
|
|
6923
|
+
tableFullData.forEach((row, index, items) => {
|
|
6924
|
+
handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1);
|
|
6925
|
+
});
|
|
6786
6926
|
}
|
|
6787
6927
|
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
6788
6928
|
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
@@ -6791,17 +6931,12 @@ export default defineComponent({
|
|
|
6791
6931
|
cacheSourceMap(fullData) {
|
|
6792
6932
|
const { treeConfig } = props;
|
|
6793
6933
|
const treeOpts = computeTreeOpts.value;
|
|
6794
|
-
let { sourceDataRowIdData } = internalData;
|
|
6795
6934
|
const sourceData = XEUtils.clone(fullData, true);
|
|
6796
|
-
const
|
|
6797
|
-
|
|
6935
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
6936
|
+
const sourceRowIdData = {};
|
|
6798
6937
|
const handleSourceRow = (row) => {
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
rowid = getRowUniqueId();
|
|
6802
|
-
XEUtils.set(row, rowkey, rowid);
|
|
6803
|
-
}
|
|
6804
|
-
sourceDataRowIdData[rowid] = row;
|
|
6938
|
+
const rowid = handleUpdateRowId(row);
|
|
6939
|
+
sourceRowIdData[rowid] = row;
|
|
6805
6940
|
};
|
|
6806
6941
|
// 源数据缓存
|
|
6807
6942
|
if (treeConfig) {
|
|
@@ -6811,6 +6946,7 @@ export default defineComponent({
|
|
|
6811
6946
|
else {
|
|
6812
6947
|
sourceData.forEach(handleSourceRow);
|
|
6813
6948
|
}
|
|
6949
|
+
internalData.sourceDataRowIdData = sourceRowIdData;
|
|
6814
6950
|
internalData.tableSourceData = sourceData;
|
|
6815
6951
|
},
|
|
6816
6952
|
/**
|
|
@@ -7262,8 +7398,22 @@ export default defineComponent({
|
|
|
7262
7398
|
}
|
|
7263
7399
|
}
|
|
7264
7400
|
// 兼容老版本
|
|
7265
|
-
let rest;
|
|
7266
|
-
|
|
7401
|
+
let rest = null;
|
|
7402
|
+
let isStop = false;
|
|
7403
|
+
for (let i = 0; i < evntList.length; i++) {
|
|
7404
|
+
const func = evntList[i];
|
|
7405
|
+
const fnRest = func(Object.assign({ $grid: $xeGrid, $table: $xeTable, $event: evnt }, args));
|
|
7406
|
+
if (fnRest === false) {
|
|
7407
|
+
isStop = true;
|
|
7408
|
+
break;
|
|
7409
|
+
}
|
|
7410
|
+
else if (fnRest && fnRest.status === false) {
|
|
7411
|
+
rest = fnRest.result;
|
|
7412
|
+
isStop = true;
|
|
7413
|
+
break;
|
|
7414
|
+
}
|
|
7415
|
+
}
|
|
7416
|
+
if (!isStop) {
|
|
7267
7417
|
if (next) {
|
|
7268
7418
|
rest = next();
|
|
7269
7419
|
}
|
|
@@ -7289,10 +7439,11 @@ export default defineComponent({
|
|
|
7289
7439
|
}
|
|
7290
7440
|
// 树结构
|
|
7291
7441
|
if (treeConfig) {
|
|
7442
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7292
7443
|
const childRowMaps = {};
|
|
7293
7444
|
const childRowList = [];
|
|
7294
7445
|
XEUtils.eachTree(afterTreeFullData, (row) => {
|
|
7295
|
-
const rowid =
|
|
7446
|
+
const rowid = handleGetRowId(row);
|
|
7296
7447
|
const childList = row[transform ? mapChildrenField : childrenField];
|
|
7297
7448
|
if (childList && childList.length && !childRowMaps[rowid]) {
|
|
7298
7449
|
childRowMaps[rowid] = 1;
|
|
@@ -7308,7 +7459,7 @@ export default defineComponent({
|
|
|
7308
7459
|
let vLen = 0; // 有效行
|
|
7309
7460
|
childList.forEach(checkMethod
|
|
7310
7461
|
? (item) => {
|
|
7311
|
-
const childRowid =
|
|
7462
|
+
const childRowid = handleGetRowId(item);
|
|
7312
7463
|
const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid];
|
|
7313
7464
|
if (checkMethod({ row: item })) {
|
|
7314
7465
|
if (isSelect) {
|
|
@@ -7329,7 +7480,7 @@ export default defineComponent({
|
|
|
7329
7480
|
}
|
|
7330
7481
|
}
|
|
7331
7482
|
: item => {
|
|
7332
|
-
const childRowid =
|
|
7483
|
+
const childRowid = handleGetRowId(item);
|
|
7333
7484
|
const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid];
|
|
7334
7485
|
if (isSelect) {
|
|
7335
7486
|
sLen++;
|
|
@@ -7378,13 +7529,14 @@ export default defineComponent({
|
|
|
7378
7529
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7379
7530
|
const { checkField, checkMethod, showReserveStatus } = checkboxOpts;
|
|
7380
7531
|
const { afterFullData, afterTreeFullData, checkboxReserveRowMap } = internalData;
|
|
7532
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7381
7533
|
let sLen = 0; // 已选
|
|
7382
7534
|
let hLen = 0; // 半选
|
|
7383
7535
|
let vLen = 0; // 有效行
|
|
7384
7536
|
const rootList = (treeConfig ? afterTreeFullData : afterFullData);
|
|
7385
7537
|
rootList.forEach(checkMethod
|
|
7386
7538
|
? row => {
|
|
7387
|
-
const childRowid =
|
|
7539
|
+
const childRowid = handleGetRowId(row);
|
|
7388
7540
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
7389
7541
|
if (checkMethod({ row })) {
|
|
7390
7542
|
if (selected) {
|
|
@@ -7405,7 +7557,7 @@ export default defineComponent({
|
|
|
7405
7557
|
}
|
|
7406
7558
|
}
|
|
7407
7559
|
: row => {
|
|
7408
|
-
const childRowid =
|
|
7560
|
+
const childRowid = handleGetRowId(row);
|
|
7409
7561
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
7410
7562
|
if (selected) {
|
|
7411
7563
|
sLen++;
|
|
@@ -7441,6 +7593,8 @@ export default defineComponent({
|
|
|
7441
7593
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7442
7594
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7443
7595
|
const { checkField, checkStrictly, checkMethod } = checkboxOpts;
|
|
7596
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7597
|
+
// indeterminateField 仅支持读取
|
|
7444
7598
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
7445
7599
|
if (checkField) {
|
|
7446
7600
|
// 树结构
|
|
@@ -7474,7 +7628,7 @@ export default defineComponent({
|
|
|
7474
7628
|
if (treeConfig && !checkStrictly) {
|
|
7475
7629
|
// 更新子节点状态
|
|
7476
7630
|
XEUtils.eachTree(rows, (row) => {
|
|
7477
|
-
const rowid =
|
|
7631
|
+
const rowid = handleGetRowId(row);
|
|
7478
7632
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7479
7633
|
if (checked) {
|
|
7480
7634
|
selectRowMaps[rowid] = row;
|
|
@@ -7492,7 +7646,7 @@ export default defineComponent({
|
|
|
7492
7646
|
}
|
|
7493
7647
|
// 列表
|
|
7494
7648
|
rows.forEach(row => {
|
|
7495
|
-
const rowid =
|
|
7649
|
+
const rowid = handleGetRowId(row);
|
|
7496
7650
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7497
7651
|
if (checked) {
|
|
7498
7652
|
if (!selectRowMaps[rowid]) {
|
|
@@ -7619,17 +7773,18 @@ export default defineComponent({
|
|
|
7619
7773
|
const { _lastResizeTime } = internalData;
|
|
7620
7774
|
const sortOpts = computeSortOpts.value;
|
|
7621
7775
|
const columnOpts = computeColumnOpts.value;
|
|
7776
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
7622
7777
|
const { column } = params;
|
|
7623
7778
|
const cell = evnt.currentTarget;
|
|
7624
7779
|
const triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300;
|
|
7625
7780
|
const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
|
|
7626
7781
|
const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
|
|
7627
7782
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
7628
|
-
|
|
7783
|
+
$xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
|
|
7629
7784
|
}
|
|
7630
7785
|
dispatchEvent('header-cell-click', Object.assign({ triggerResizable, triggerSort, triggerFilter, cell }, params), evnt);
|
|
7631
|
-
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
7632
|
-
|
|
7786
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7787
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7633
7788
|
}
|
|
7634
7789
|
},
|
|
7635
7790
|
triggerHeaderCellDblclickEvent(evnt, params) {
|
|
@@ -7641,7 +7796,7 @@ export default defineComponent({
|
|
|
7641
7796
|
* 如果是双击模式,则单击后选中状态
|
|
7642
7797
|
*/
|
|
7643
7798
|
triggerCellClickEvent(evnt, params) {
|
|
7644
|
-
const { highlightCurrentRow, editConfig } = props;
|
|
7799
|
+
const { highlightCurrentRow, highlightCurrentColumn, editConfig } = props;
|
|
7645
7800
|
const { editStore, isDragResize } = reactData;
|
|
7646
7801
|
if (isDragResize) {
|
|
7647
7802
|
return;
|
|
@@ -7653,6 +7808,8 @@ export default defineComponent({
|
|
|
7653
7808
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7654
7809
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
7655
7810
|
const rowOpts = computeRowOpts.value;
|
|
7811
|
+
const columnOpts = computeColumnOpts.value;
|
|
7812
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
7656
7813
|
const { actived, focused } = editStore;
|
|
7657
7814
|
const { row, column } = params;
|
|
7658
7815
|
const { type, treeNode } = column;
|
|
@@ -7668,29 +7825,35 @@ export default defineComponent({
|
|
|
7668
7825
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7669
7826
|
// 如果是展开行
|
|
7670
7827
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || (isExpandType && expandOpts.trigger === 'cell'))) {
|
|
7671
|
-
|
|
7828
|
+
$xeTable.triggerRowExpandEvent(evnt, params);
|
|
7672
7829
|
}
|
|
7673
7830
|
// 如果是树形表格
|
|
7674
7831
|
if ((treeOpts.trigger === 'row' || (treeNode && treeOpts.trigger === 'cell'))) {
|
|
7675
|
-
|
|
7832
|
+
$xeTable.triggerTreeExpandEvent(evnt, params);
|
|
7676
7833
|
}
|
|
7677
7834
|
}
|
|
7678
7835
|
// 如果点击了树节点
|
|
7679
7836
|
if (!triggerTreeNode) {
|
|
7680
7837
|
if (!triggerExpandNode) {
|
|
7681
|
-
//
|
|
7838
|
+
// 如果是当前行
|
|
7682
7839
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
7683
7840
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7684
|
-
|
|
7841
|
+
$xeTable.triggerCurrentRowEvent(evnt, params);
|
|
7842
|
+
}
|
|
7843
|
+
}
|
|
7844
|
+
// 如果是当前列
|
|
7845
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7846
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
7847
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7685
7848
|
}
|
|
7686
7849
|
}
|
|
7687
7850
|
// 如果是单选框
|
|
7688
7851
|
if (!triggerRadio && (radioOpts.trigger === 'row' || (isRadioType && radioOpts.trigger === 'cell'))) {
|
|
7689
|
-
|
|
7852
|
+
$xeTable.triggerRadioRowEvent(evnt, params);
|
|
7690
7853
|
}
|
|
7691
7854
|
// 如果是复选框
|
|
7692
7855
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || (isCheckboxType && checkboxOpts.trigger === 'cell'))) {
|
|
7693
|
-
|
|
7856
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params);
|
|
7694
7857
|
}
|
|
7695
7858
|
}
|
|
7696
7859
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -7792,36 +7955,38 @@ export default defineComponent({
|
|
|
7792
7955
|
}
|
|
7793
7956
|
},
|
|
7794
7957
|
triggerCheckRowEvent(evnt, params, checked) {
|
|
7795
|
-
const checkboxOpts = computeCheckboxOpts.value;
|
|
7796
7958
|
const { row } = params;
|
|
7797
7959
|
const { afterFullData } = internalData;
|
|
7960
|
+
const checkboxOpts = computeCheckboxOpts.value;
|
|
7798
7961
|
const { checkMethod, trigger } = checkboxOpts;
|
|
7799
7962
|
if (trigger === 'manual') {
|
|
7800
7963
|
return;
|
|
7801
7964
|
}
|
|
7802
7965
|
evnt.stopPropagation();
|
|
7803
7966
|
if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
|
|
7804
|
-
const checkboxRecords =
|
|
7967
|
+
const checkboxRecords = $xeTable.getCheckboxRecords();
|
|
7805
7968
|
if (checkboxRecords.length) {
|
|
7806
7969
|
const firstRow = checkboxRecords[0];
|
|
7807
|
-
const _rowIndex =
|
|
7808
|
-
const _firstRowIndex =
|
|
7970
|
+
const _rowIndex = $xeTable.getVTRowIndex(row);
|
|
7971
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow);
|
|
7809
7972
|
if (_rowIndex !== _firstRowIndex) {
|
|
7810
|
-
|
|
7973
|
+
$xeTable.setAllCheckboxRow(false);
|
|
7811
7974
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
|
|
7812
|
-
|
|
7975
|
+
nextTick(() => {
|
|
7976
|
+
handleCheckedCheckboxRow(rangeRows, true, false);
|
|
7977
|
+
});
|
|
7813
7978
|
dispatchEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt);
|
|
7814
7979
|
return;
|
|
7815
7980
|
}
|
|
7816
7981
|
}
|
|
7817
7982
|
}
|
|
7818
7983
|
if (!checkMethod || checkMethod({ row })) {
|
|
7819
|
-
|
|
7820
|
-
|
|
7984
|
+
$xeTable.handleBatchSelectRows([row], checked);
|
|
7985
|
+
$xeTable.checkSelectionStatus();
|
|
7821
7986
|
dispatchEvent('checkbox-change', Object.assign({
|
|
7822
|
-
records:
|
|
7823
|
-
reserves:
|
|
7824
|
-
indeterminates:
|
|
7987
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
7988
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
7989
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
7825
7990
|
checked
|
|
7826
7991
|
}, params), evnt);
|
|
7827
7992
|
}
|
|
@@ -8088,6 +8253,9 @@ export default defineComponent({
|
|
|
8088
8253
|
const { afterFullData, tableFullData } = internalData;
|
|
8089
8254
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
8090
8255
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
8256
|
+
const errRest = {
|
|
8257
|
+
status: false
|
|
8258
|
+
};
|
|
8091
8259
|
if (prevDragRow && dragRow) {
|
|
8092
8260
|
// 判断是否有拖动
|
|
8093
8261
|
if (prevDragRow !== dragRow) {
|
|
@@ -8102,7 +8270,7 @@ export default defineComponent({
|
|
|
8102
8270
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
8103
8271
|
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
|
|
8104
8272
|
if (!status) {
|
|
8105
|
-
return;
|
|
8273
|
+
return errRest;
|
|
8106
8274
|
}
|
|
8107
8275
|
let oafIndex = -1;
|
|
8108
8276
|
let nafIndex = -1;
|
|
@@ -8127,12 +8295,12 @@ export default defineComponent({
|
|
|
8127
8295
|
if (isPeerDrag && !isCrossDrag) {
|
|
8128
8296
|
if (oldRest.row[parentField] !== newRest.row[parentField]) {
|
|
8129
8297
|
// 非同级
|
|
8130
|
-
return;
|
|
8298
|
+
return errRest;
|
|
8131
8299
|
}
|
|
8132
8300
|
}
|
|
8133
8301
|
else {
|
|
8134
8302
|
if (!isCrossDrag) {
|
|
8135
|
-
return;
|
|
8303
|
+
return errRest;
|
|
8136
8304
|
}
|
|
8137
8305
|
if (oldAllMaps[newRowid]) {
|
|
8138
8306
|
isSelfToChildStatus = true;
|
|
@@ -8143,7 +8311,7 @@ export default defineComponent({
|
|
|
8143
8311
|
content: getI18n('vxe.error.treeDragChild')
|
|
8144
8312
|
});
|
|
8145
8313
|
}
|
|
8146
|
-
return;
|
|
8314
|
+
return errRest;
|
|
8147
8315
|
}
|
|
8148
8316
|
}
|
|
8149
8317
|
}
|
|
@@ -8151,13 +8319,13 @@ export default defineComponent({
|
|
|
8151
8319
|
else if (oldLevel) {
|
|
8152
8320
|
// 子到根
|
|
8153
8321
|
if (!isCrossDrag) {
|
|
8154
|
-
return;
|
|
8322
|
+
return errRest;
|
|
8155
8323
|
}
|
|
8156
8324
|
}
|
|
8157
8325
|
else if (newLevel) {
|
|
8158
8326
|
// 根到子
|
|
8159
8327
|
if (!isCrossDrag) {
|
|
8160
|
-
return;
|
|
8328
|
+
return errRest;
|
|
8161
8329
|
}
|
|
8162
8330
|
if (oldAllMaps[newRowid]) {
|
|
8163
8331
|
isSelfToChildStatus = true;
|
|
@@ -8168,7 +8336,7 @@ export default defineComponent({
|
|
|
8168
8336
|
content: getI18n('vxe.error.treeDragChild')
|
|
8169
8337
|
});
|
|
8170
8338
|
}
|
|
8171
|
-
return;
|
|
8339
|
+
return errRest;
|
|
8172
8340
|
}
|
|
8173
8341
|
}
|
|
8174
8342
|
}
|
|
@@ -8228,27 +8396,34 @@ export default defineComponent({
|
|
|
8228
8396
|
if (reactData.scrollYLoad) {
|
|
8229
8397
|
$xeTable.updateScrollYSpace();
|
|
8230
8398
|
}
|
|
8231
|
-
|
|
8399
|
+
if (evnt) {
|
|
8400
|
+
dispatchEvent('row-dragend', {
|
|
8401
|
+
oldRow: dragRow,
|
|
8402
|
+
newRow: prevDragRow,
|
|
8403
|
+
dragRow,
|
|
8404
|
+
dragPos: prevDragPos,
|
|
8405
|
+
dragToChild: isDragToChildFlag,
|
|
8406
|
+
offsetIndex: dragOffsetIndex,
|
|
8407
|
+
_index: {
|
|
8408
|
+
newIndex: nafIndex,
|
|
8409
|
+
oldIndex: oafIndex
|
|
8410
|
+
}
|
|
8411
|
+
}, evnt);
|
|
8412
|
+
}
|
|
8413
|
+
return nextTick().then(() => {
|
|
8232
8414
|
$xeTable.updateCellAreas();
|
|
8233
8415
|
$xeTable.recalculate();
|
|
8416
|
+
}).then(() => {
|
|
8417
|
+
return {
|
|
8418
|
+
status: true
|
|
8419
|
+
};
|
|
8234
8420
|
});
|
|
8235
|
-
dispatchEvent('row-dragend', {
|
|
8236
|
-
oldRow: dragRow,
|
|
8237
|
-
newRow: prevDragRow,
|
|
8238
|
-
dragRow,
|
|
8239
|
-
dragPos: prevDragPos,
|
|
8240
|
-
dragToChild: isDragToChildFlag,
|
|
8241
|
-
offsetIndex: dragOffsetIndex,
|
|
8242
|
-
_index: {
|
|
8243
|
-
newIndex: nafIndex,
|
|
8244
|
-
oldIndex: oafIndex
|
|
8245
|
-
}
|
|
8246
|
-
}, evnt);
|
|
8247
8421
|
}).catch(() => {
|
|
8422
|
+
return errRest;
|
|
8248
8423
|
});
|
|
8249
8424
|
}
|
|
8250
8425
|
}
|
|
8251
|
-
return Promise.resolve();
|
|
8426
|
+
return Promise.resolve(errRest);
|
|
8252
8427
|
},
|
|
8253
8428
|
handleRowDragDragendEvent(evnt) {
|
|
8254
8429
|
const { treeConfig } = props;
|
|
@@ -8375,6 +8550,9 @@ export default defineComponent({
|
|
|
8375
8550
|
const { isPeerDrag, isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod, dragToChildMethod } = columnDragOpts;
|
|
8376
8551
|
const { collectColumn } = internalData;
|
|
8377
8552
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
|
|
8553
|
+
const errRest = {
|
|
8554
|
+
status: false
|
|
8555
|
+
};
|
|
8378
8556
|
if (prevDragCol && dragCol) {
|
|
8379
8557
|
// 判断是否有拖动
|
|
8380
8558
|
if (prevDragCol !== dragCol) {
|
|
@@ -8391,7 +8569,7 @@ export default defineComponent({
|
|
|
8391
8569
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
8392
8570
|
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
|
|
8393
8571
|
if (!status) {
|
|
8394
|
-
return;
|
|
8572
|
+
return errRest;
|
|
8395
8573
|
}
|
|
8396
8574
|
let oafIndex = -1;
|
|
8397
8575
|
let nafIndex = -1;
|
|
@@ -8405,12 +8583,12 @@ export default defineComponent({
|
|
|
8405
8583
|
if (isPeerDrag && !isCrossDrag) {
|
|
8406
8584
|
if (dragColumn.parentId !== newColumn.parentId) {
|
|
8407
8585
|
// 非同级
|
|
8408
|
-
return;
|
|
8586
|
+
return errRest;
|
|
8409
8587
|
}
|
|
8410
8588
|
}
|
|
8411
8589
|
else {
|
|
8412
8590
|
if (!isCrossDrag) {
|
|
8413
|
-
return;
|
|
8591
|
+
return errRest;
|
|
8414
8592
|
}
|
|
8415
8593
|
if (oldAllMaps[newColumn.id]) {
|
|
8416
8594
|
isSelfToChildStatus = true;
|
|
@@ -8421,7 +8599,7 @@ export default defineComponent({
|
|
|
8421
8599
|
content: getI18n('vxe.error.treeDragChild')
|
|
8422
8600
|
});
|
|
8423
8601
|
}
|
|
8424
|
-
return;
|
|
8602
|
+
return errRest;
|
|
8425
8603
|
}
|
|
8426
8604
|
}
|
|
8427
8605
|
}
|
|
@@ -8429,13 +8607,13 @@ export default defineComponent({
|
|
|
8429
8607
|
else if (dragColumn.parentId) {
|
|
8430
8608
|
// 子到根
|
|
8431
8609
|
if (!isCrossDrag) {
|
|
8432
|
-
return;
|
|
8610
|
+
return errRest;
|
|
8433
8611
|
}
|
|
8434
8612
|
}
|
|
8435
8613
|
else if (newColumn.parentId) {
|
|
8436
8614
|
// 根到子
|
|
8437
8615
|
if (!isCrossDrag) {
|
|
8438
|
-
return;
|
|
8616
|
+
return errRest;
|
|
8439
8617
|
}
|
|
8440
8618
|
if (oldAllMaps[newColumn.id]) {
|
|
8441
8619
|
isSelfToChildStatus = true;
|
|
@@ -8446,7 +8624,7 @@ export default defineComponent({
|
|
|
8446
8624
|
content: getI18n('vxe.error.treeDragChild')
|
|
8447
8625
|
});
|
|
8448
8626
|
}
|
|
8449
|
-
return;
|
|
8627
|
+
return errRest;
|
|
8450
8628
|
}
|
|
8451
8629
|
}
|
|
8452
8630
|
}
|
|
@@ -8507,26 +8685,32 @@ export default defineComponent({
|
|
|
8507
8685
|
$xeTable.clearCopyCellArea();
|
|
8508
8686
|
}
|
|
8509
8687
|
}
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8688
|
+
if (evnt) {
|
|
8689
|
+
dispatchEvent('column-dragend', {
|
|
8690
|
+
oldColumn: dragColumn,
|
|
8691
|
+
newColumn,
|
|
8692
|
+
dragColumn,
|
|
8693
|
+
dragPos: prevDragPos,
|
|
8694
|
+
dragToChild: isDragToChildFlag,
|
|
8695
|
+
offsetIndex: dragOffsetIndex,
|
|
8696
|
+
_index: {
|
|
8697
|
+
newIndex: nafIndex,
|
|
8698
|
+
oldIndex: oafIndex
|
|
8699
|
+
}
|
|
8700
|
+
}, evnt);
|
|
8701
|
+
}
|
|
8522
8702
|
if (isSyncColumn) {
|
|
8523
8703
|
$xeTable.handleColDragSwapColumn();
|
|
8524
8704
|
}
|
|
8705
|
+
return {
|
|
8706
|
+
status: true
|
|
8707
|
+
};
|
|
8525
8708
|
}).catch(() => {
|
|
8709
|
+
return errRest;
|
|
8526
8710
|
});
|
|
8527
8711
|
}
|
|
8528
8712
|
}
|
|
8529
|
-
return Promise.resolve();
|
|
8713
|
+
return Promise.resolve(errRest);
|
|
8530
8714
|
},
|
|
8531
8715
|
handleHeaderCellDragDragendEvent(evnt) {
|
|
8532
8716
|
const { dragCol } = reactData;
|
|
@@ -8920,10 +9104,10 @@ export default defineComponent({
|
|
|
8920
9104
|
return;
|
|
8921
9105
|
}
|
|
8922
9106
|
const { highlightHoverRow } = tableProps;
|
|
8923
|
-
const { scrollXLoad, scrollYLoad } = reactData;
|
|
9107
|
+
const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
|
|
8924
9108
|
const leftFixedWidth = computeLeftFixedWidth.value;
|
|
8925
9109
|
const rightFixedWidth = computeRightFixedWidth.value;
|
|
8926
|
-
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth)) {
|
|
9110
|
+
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth || expandColumn)) {
|
|
8927
9111
|
return;
|
|
8928
9112
|
}
|
|
8929
9113
|
const { elemStore, lastScrollTop, lastScrollLeft } = internalData;
|