vxe-table 4.12.0-beta.1 → 4.12.0-beta.11
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 +70 -75
- package/es/locale/lang/ar-EG.js +3 -0
- package/es/locale/lang/de-DE.js +3 -0
- package/es/locale/lang/en-US.js +3 -0
- package/es/locale/lang/es-ES.js +3 -0
- package/es/locale/lang/fr-FR.js +3 -0
- package/es/locale/lang/hu-HU.js +3 -0
- package/es/locale/lang/hy-AM.js +3 -0
- package/es/locale/lang/id-ID.js +3 -0
- package/es/locale/lang/it-IT.js +3 -0
- package/es/locale/lang/ja-JP.js +3 -0
- package/es/locale/lang/ko-KR.js +3 -0
- package/es/locale/lang/nb-NO.js +3 -0
- package/es/locale/lang/pt-BR.js +3 -0
- package/es/locale/lang/ru-RU.js +3 -0
- package/es/locale/lang/th-TH.js +3 -0
- package/es/locale/lang/ug-CN.js +3 -0
- package/es/locale/lang/uk-UA.js +3 -0
- package/es/locale/lang/vi-VN.js +3 -0
- package/es/locale/lang/zh-CHT.js +3 -0
- package/es/locale/lang/zh-CN.js +3 -0
- package/es/style.css +1 -1
- package/es/table/module/custom/panel.js +19 -21
- package/es/table/module/export/export-panel.js +17 -19
- package/es/table/module/export/hook.js +5 -11
- package/es/table/module/export/import-panel.js +11 -13
- package/es/table/module/filter/panel.js +12 -2
- package/es/table/module/keyboard/hook.js +47 -4
- package/es/table/module/validator/hook.js +1 -3
- package/es/table/render/index.js +90 -61
- package/es/table/src/body.js +11 -6
- package/es/table/src/columnInfo.js +26 -28
- package/es/table/src/footer.js +7 -2
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +372 -193
- package/es/table/src/util.js +30 -3
- package/es/toolbar/src/toolbar.js +16 -24
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +67 -79
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +1288 -12218
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +3 -0
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +3 -0
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +3 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +3 -0
- package/lib/locale/lang/es-ES.js +3 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +3 -0
- package/lib/locale/lang/fr-FR.js +3 -0
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +3 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +3 -0
- package/lib/locale/lang/hy-AM.js +3 -0
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +3 -0
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +3 -0
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +3 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +3 -0
- package/lib/locale/lang/ko-KR.js +3 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +3 -0
- package/lib/locale/lang/nb-NO.js +3 -0
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +3 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +3 -0
- package/lib/locale/lang/ru-RU.js +3 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +3 -0
- package/lib/locale/lang/th-TH.js +3 -0
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +3 -0
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +3 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +3 -0
- package/lib/locale/lang/vi-VN.js +3 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +3 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +3 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +3 -0
- package/lib/style.css +1 -1
- package/lib/table/module/custom/panel.js +21 -23
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/export/export-panel.js +17 -19
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/hook.js +5 -11
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/export/import-panel.js +11 -13
- package/lib/table/module/export/import-panel.min.js +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/module/validator/hook.js +1 -3
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/render/index.js +98 -66
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +10 -5
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/columnInfo.js +30 -32
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +7 -2
- package/lib/table/src/footer.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 +405 -191
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +35 -6
- package/lib/table/src/util.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +16 -24
- package/lib/toolbar/src/toolbar.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 +75 -81
- package/packages/locale/lang/ar-EG.ts +3 -0
- package/packages/locale/lang/de-DE.ts +3 -0
- package/packages/locale/lang/en-US.ts +3 -0
- package/packages/locale/lang/es-ES.ts +3 -0
- package/packages/locale/lang/fr-FR.ts +3 -0
- package/packages/locale/lang/hu-HU.ts +3 -0
- package/packages/locale/lang/hy-AM.ts +3 -0
- package/packages/locale/lang/id-ID.ts +3 -0
- package/packages/locale/lang/it-IT.ts +3 -0
- package/packages/locale/lang/ja-JP.ts +3 -0
- package/packages/locale/lang/ko-KR.ts +3 -0
- package/packages/locale/lang/nb-NO.ts +3 -0
- package/packages/locale/lang/pt-BR.ts +3 -0
- package/packages/locale/lang/ru-RU.ts +3 -0
- package/packages/locale/lang/th-TH.ts +3 -0
- package/packages/locale/lang/ug-CN.ts +3 -0
- package/packages/locale/lang/uk-UA.ts +3 -0
- package/packages/locale/lang/vi-VN.ts +3 -0
- package/packages/locale/lang/zh-CHT.ts +3 -0
- package/packages/locale/lang/zh-CN.ts +3 -0
- package/packages/table/module/custom/panel.ts +19 -21
- package/packages/table/module/export/export-panel.ts +17 -19
- package/packages/table/module/export/hook.ts +5 -11
- package/packages/table/module/export/import-panel.ts +11 -13
- package/packages/table/module/filter/panel.ts +12 -2
- package/packages/table/module/keyboard/hook.ts +47 -6
- package/packages/table/module/validator/hook.ts +1 -3
- package/packages/table/render/index.ts +89 -59
- package/packages/table/src/body.ts +10 -5
- package/packages/table/src/columnInfo.ts +26 -28
- package/packages/table/src/footer.ts +7 -2
- package/packages/table/src/props.ts +4 -0
- package/packages/table/src/table.ts +377 -191
- package/packages/table/src/util.ts +34 -3
- package/packages/toolbar/src/toolbar.ts +16 -24
- /package/es/{iconfont.1741051902838.ttf → iconfont.1741687565851.ttf} +0 -0
- /package/es/{iconfont.1741051902838.woff → iconfont.1741687565851.woff} +0 -0
- /package/es/{iconfont.1741051902838.woff2 → iconfont.1741687565851.woff2} +0 -0
- /package/lib/{iconfont.1741051902838.ttf → iconfont.1741687565851.ttf} +0 -0
- /package/lib/{iconfont.1741051902838.woff → iconfont.1741687565851.woff} +0 -0
- /package/lib/{iconfont.1741051902838.woff2 → iconfont.1741687565851.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -499,6 +499,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
499
499
|
const computeColumnOpts = (0, _vue.computed)(() => {
|
|
500
500
|
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
|
|
501
501
|
});
|
|
502
|
+
const computeCurrentColumnOpts = (0, _vue.computed)(() => {
|
|
503
|
+
return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
|
|
504
|
+
});
|
|
502
505
|
const computeCellOpts = (0, _vue.computed)(() => {
|
|
503
506
|
return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
|
|
504
507
|
});
|
|
@@ -511,6 +514,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
511
514
|
const computeRowOpts = (0, _vue.computed)(() => {
|
|
512
515
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
513
516
|
});
|
|
517
|
+
const computeCurrentRowOpts = (0, _vue.computed)(() => {
|
|
518
|
+
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
|
|
519
|
+
});
|
|
514
520
|
const computeRowDragOpts = (0, _vue.computed)(() => {
|
|
515
521
|
return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
|
|
516
522
|
});
|
|
@@ -817,6 +823,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
817
823
|
computeScrollbarXToTop,
|
|
818
824
|
computeScrollbarYToLeft,
|
|
819
825
|
computeColumnOpts,
|
|
826
|
+
computeCurrentColumnOpts,
|
|
820
827
|
computeScrollXThreshold,
|
|
821
828
|
computeScrollYThreshold,
|
|
822
829
|
computeDefaultRowHeight,
|
|
@@ -824,6 +831,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
824
831
|
computeHeaderCellOpts,
|
|
825
832
|
computeFooterCellOpts,
|
|
826
833
|
computeRowOpts,
|
|
834
|
+
computeCurrentRowOpts,
|
|
827
835
|
computeRowDragOpts,
|
|
828
836
|
computeColumnDragOpts,
|
|
829
837
|
computeResizeOpts,
|
|
@@ -1439,14 +1447,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1439
1447
|
if (expandColumn && expandOpts.mode !== 'fixed' && mouseOpts.area) {
|
|
1440
1448
|
(0, _log.errLog)('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
|
|
1441
1449
|
}
|
|
1442
|
-
if (
|
|
1443
|
-
if (
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
(0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
|
|
1449
|
-
}
|
|
1450
|
+
if (htmlColumn) {
|
|
1451
|
+
if (!columnOpts.useKey) {
|
|
1452
|
+
(0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
|
|
1453
|
+
}
|
|
1454
|
+
if (!rowOpts.useKey) {
|
|
1455
|
+
(0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
|
|
1450
1456
|
}
|
|
1451
1457
|
}
|
|
1452
1458
|
reactData.isGroup = isGroup;
|
|
@@ -2630,6 +2636,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2630
2636
|
reserve,
|
|
2631
2637
|
checkMethod
|
|
2632
2638
|
} = checkboxOpts;
|
|
2639
|
+
// indeterminateField 仅支持读取
|
|
2633
2640
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
2634
2641
|
const selectRowMaps = {};
|
|
2635
2642
|
/**
|
|
@@ -2950,12 +2957,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2950
2957
|
rowIndex: tableMethods.getRowIndex(row),
|
|
2951
2958
|
$rowIndex: tableMethods.getVMRowIndex(row)
|
|
2952
2959
|
}).then(() => {
|
|
2953
|
-
const
|
|
2960
|
+
const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
|
|
2954
2961
|
if (rowRest) {
|
|
2955
2962
|
rowRest.expandLoaded = true;
|
|
2956
2963
|
}
|
|
2957
|
-
|
|
2958
|
-
reactData.rowExpandedMaps =
|
|
2964
|
+
rowTempExpandedMaps[rowid] = row;
|
|
2965
|
+
reactData.rowExpandedMaps = rowTempExpandedMaps;
|
|
2959
2966
|
}).catch(() => {
|
|
2960
2967
|
if (rowRest) {
|
|
2961
2968
|
rowRest.expandLoaded = false;
|
|
@@ -3122,32 +3129,30 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3122
3129
|
} = treeOpts;
|
|
3123
3130
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
3124
3131
|
let treeData = [];
|
|
3125
|
-
let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); //
|
|
3132
|
+
let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); // 转为响应式数据
|
|
3126
3133
|
if (treeConfig) {
|
|
3127
3134
|
if (transform) {
|
|
3128
3135
|
// 树结构自动转换
|
|
3129
|
-
if (
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
|
|
3135
|
-
}
|
|
3136
|
-
if (!childrenField) {
|
|
3137
|
-
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
|
|
3138
|
-
}
|
|
3139
|
-
if (!treeOpts.mapChildrenField) {
|
|
3140
|
-
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
|
|
3141
|
-
}
|
|
3142
|
-
if (childrenField === treeOpts.mapChildrenField) {
|
|
3143
|
-
(0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
|
|
3144
|
-
}
|
|
3145
|
-
// fullData.forEach(row => {
|
|
3146
|
-
// if (row[treeOpts.children] && row[treeOpts.children].length) {
|
|
3147
|
-
// warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
|
|
3148
|
-
// }
|
|
3149
|
-
// })
|
|
3136
|
+
if (!treeOpts.rowField) {
|
|
3137
|
+
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.rowField']);
|
|
3138
|
+
}
|
|
3139
|
+
if (!treeOpts.parentField) {
|
|
3140
|
+
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
|
|
3150
3141
|
}
|
|
3142
|
+
if (!childrenField) {
|
|
3143
|
+
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
|
|
3144
|
+
}
|
|
3145
|
+
if (!treeOpts.mapChildrenField) {
|
|
3146
|
+
(0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
|
|
3147
|
+
}
|
|
3148
|
+
if (childrenField === treeOpts.mapChildrenField) {
|
|
3149
|
+
(0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
|
|
3150
|
+
}
|
|
3151
|
+
// fullData.forEach(row => {
|
|
3152
|
+
// if (row[treeOpts.children] && row[treeOpts.children].length) {
|
|
3153
|
+
// warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
|
|
3154
|
+
// }
|
|
3155
|
+
// })
|
|
3151
3156
|
treeData = _xeUtils.default.toArrayTree(fullData, {
|
|
3152
3157
|
key: treeOpts.rowField,
|
|
3153
3158
|
parentKey: treeOpts.parentField,
|
|
@@ -3211,16 +3216,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3211
3216
|
// }
|
|
3212
3217
|
// }
|
|
3213
3218
|
// }
|
|
3214
|
-
if (
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
(0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
|
|
3223
|
-
}
|
|
3219
|
+
if (!(props.height || props.maxHeight)) {
|
|
3220
|
+
(0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
3221
|
+
}
|
|
3222
|
+
// if (!props.showOverflow) {
|
|
3223
|
+
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
3224
|
+
// }
|
|
3225
|
+
if (props.spanMethod) {
|
|
3226
|
+
(0, _log.errLog)('vxe.error.scrollErrProp', ['table.span-method']);
|
|
3224
3227
|
}
|
|
3225
3228
|
}
|
|
3226
3229
|
handleReserveStatus();
|
|
@@ -4024,6 +4027,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4024
4027
|
};
|
|
4025
4028
|
tableMethods = {
|
|
4026
4029
|
dispatchEvent,
|
|
4030
|
+
getEl() {
|
|
4031
|
+
return refElem.value;
|
|
4032
|
+
},
|
|
4027
4033
|
/**
|
|
4028
4034
|
* 重置表格的一切数据状态
|
|
4029
4035
|
*/
|
|
@@ -4358,23 +4364,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4358
4364
|
}
|
|
4359
4365
|
return tableMethods.createData(records).then(rows => isArr ? rows : rows[0]);
|
|
4360
4366
|
},
|
|
4361
|
-
// toOriginalRecords (rows: any[]) {
|
|
4362
|
-
// const { treeConfig } = props
|
|
4363
|
-
// const treeOpts = computeTreeOpts.value
|
|
4364
|
-
// const { transform, mapChildrenField } = treeOpts
|
|
4365
|
-
// const rowkey = getRowkey($xeTable)
|
|
4366
|
-
// if (treeConfig) {
|
|
4367
|
-
// if (transform) {
|
|
4368
|
-
// return []
|
|
4369
|
-
// }
|
|
4370
|
-
// return []
|
|
4371
|
-
// }
|
|
4372
|
-
// return rows.map(item => {
|
|
4373
|
-
// const obj = Object.assign({}, item)
|
|
4374
|
-
// delete obj.rowkey
|
|
4375
|
-
// return obj
|
|
4376
|
-
// })
|
|
4377
|
-
// },
|
|
4378
4367
|
/**
|
|
4379
4368
|
* 还原数据
|
|
4380
4369
|
* 如果不传任何参数,则还原整个表格
|
|
@@ -4384,15 +4373,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4384
4373
|
*/
|
|
4385
4374
|
revertData(rows, field) {
|
|
4386
4375
|
const {
|
|
4387
|
-
keepSource
|
|
4376
|
+
keepSource,
|
|
4377
|
+
treeConfig
|
|
4388
4378
|
} = props;
|
|
4389
4379
|
const {
|
|
4380
|
+
editStore
|
|
4381
|
+
} = reactData;
|
|
4382
|
+
const {
|
|
4383
|
+
fullAllDataRowIdData,
|
|
4384
|
+
fullDataRowIdData,
|
|
4390
4385
|
tableSourceData,
|
|
4391
|
-
sourceDataRowIdData
|
|
4386
|
+
sourceDataRowIdData,
|
|
4387
|
+
tableFullData,
|
|
4388
|
+
afterFullData
|
|
4392
4389
|
} = internalData;
|
|
4390
|
+
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
4391
|
+
const treeOpts = computeTreeOpts.value;
|
|
4392
|
+
const {
|
|
4393
|
+
transform
|
|
4394
|
+
} = treeOpts;
|
|
4393
4395
|
if (!keepSource) {
|
|
4394
4396
|
if (process.env.NODE_ENV === 'development') {
|
|
4395
|
-
(0, _log.
|
|
4397
|
+
(0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
|
|
4396
4398
|
}
|
|
4397
4399
|
return (0, _vue.nextTick)();
|
|
4398
4400
|
}
|
|
@@ -4404,25 +4406,52 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4404
4406
|
} else {
|
|
4405
4407
|
targetRows = _xeUtils.default.toArray($xeTable.getUpdateRecords());
|
|
4406
4408
|
}
|
|
4409
|
+
let reDelFlag = false;
|
|
4407
4410
|
if (targetRows.length) {
|
|
4408
|
-
targetRows.forEach(
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4411
|
+
targetRows.forEach(item => {
|
|
4412
|
+
const rowid = (0, _util.getRowid)($xeTable, item);
|
|
4413
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
4414
|
+
if (rowRest) {
|
|
4415
|
+
const row = rowRest.row;
|
|
4416
|
+
if (!$xeTable.isInsertByRow(row)) {
|
|
4417
|
+
const oRow = sourceDataRowIdData[rowid];
|
|
4418
|
+
if (oRow && row) {
|
|
4419
|
+
if (field) {
|
|
4420
|
+
_xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
|
|
4421
|
+
} else {
|
|
4422
|
+
_xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
|
|
4423
|
+
}
|
|
4424
|
+
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
4425
|
+
delete removeTempMaps[rowid];
|
|
4426
|
+
tableFullData.unshift(row);
|
|
4427
|
+
afterFullData.unshift(row);
|
|
4428
|
+
reDelFlag = true;
|
|
4429
|
+
}
|
|
4417
4430
|
}
|
|
4418
4431
|
}
|
|
4419
4432
|
}
|
|
4420
4433
|
});
|
|
4421
4434
|
}
|
|
4422
4435
|
if (rows) {
|
|
4423
|
-
|
|
4436
|
+
if (reDelFlag) {
|
|
4437
|
+
editStore.removeMaps = removeTempMaps;
|
|
4438
|
+
$xeTable.updateFooter();
|
|
4439
|
+
$xeTable.cacheRowMap(false);
|
|
4440
|
+
$xeTable.handleTableData(treeConfig && transform);
|
|
4441
|
+
if (!(treeConfig && transform)) {
|
|
4442
|
+
$xeTable.updateAfterDataIndex();
|
|
4443
|
+
}
|
|
4444
|
+
$xeTable.checkSelectionStatus();
|
|
4445
|
+
if (reactData.scrollYLoad) {
|
|
4446
|
+
$xeTable.updateScrollYSpace();
|
|
4447
|
+
}
|
|
4448
|
+
}
|
|
4449
|
+
return (0, _vue.nextTick)().then(() => {
|
|
4450
|
+
$xeTable.updateCellAreas();
|
|
4451
|
+
return $xeTable.recalculate();
|
|
4452
|
+
});
|
|
4424
4453
|
}
|
|
4425
|
-
return
|
|
4454
|
+
return $xeTable.reloadData(tableSourceData);
|
|
4426
4455
|
},
|
|
4427
4456
|
/**
|
|
4428
4457
|
* 清空单元格内容
|
|
@@ -4555,6 +4584,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4555
4584
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4556
4585
|
return !!editStore.insertMaps[rowid];
|
|
4557
4586
|
},
|
|
4587
|
+
isRemoveByRow(row) {
|
|
4588
|
+
const {
|
|
4589
|
+
editStore
|
|
4590
|
+
} = reactData;
|
|
4591
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4592
|
+
return !!editStore.removeMaps[rowid];
|
|
4593
|
+
},
|
|
4558
4594
|
/**
|
|
4559
4595
|
* 删除所有新增的临时数据
|
|
4560
4596
|
* @returns
|
|
@@ -4568,10 +4604,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4568
4604
|
},
|
|
4569
4605
|
/**
|
|
4570
4606
|
* 检查行或列数据是否发生改变
|
|
4571
|
-
* @param {Row}
|
|
4607
|
+
* @param {Row} rowidOrRow 行对象、行主键
|
|
4572
4608
|
* @param {String} field 字段名
|
|
4573
4609
|
*/
|
|
4574
|
-
isUpdateByRow(
|
|
4610
|
+
isUpdateByRow(rowidOrRow, field) {
|
|
4575
4611
|
const {
|
|
4576
4612
|
keepSource
|
|
4577
4613
|
} = props;
|
|
@@ -4581,11 +4617,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4581
4617
|
sourceDataRowIdData
|
|
4582
4618
|
} = internalData;
|
|
4583
4619
|
if (keepSource) {
|
|
4584
|
-
const rowid = (0, _util.getRowid)($xeTable,
|
|
4620
|
+
const rowid = _xeUtils.default.isString(rowidOrRow) || _xeUtils.default.isNumber(rowidOrRow) ? rowidOrRow : (0, _util.getRowid)($xeTable, rowidOrRow);
|
|
4621
|
+
const rowRest = fullDataRowIdData[rowid];
|
|
4585
4622
|
// 新增的数据不需要检测
|
|
4586
|
-
if (!
|
|
4623
|
+
if (!rowRest) {
|
|
4587
4624
|
return false;
|
|
4588
4625
|
}
|
|
4626
|
+
const row = rowRest.row;
|
|
4589
4627
|
const oRow = sourceDataRowIdData[rowid];
|
|
4590
4628
|
if (oRow) {
|
|
4591
4629
|
if (arguments.length > 1) {
|
|
@@ -4649,6 +4687,108 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4649
4687
|
tableColumn: reactData.tableColumn.slice(0)
|
|
4650
4688
|
};
|
|
4651
4689
|
},
|
|
4690
|
+
/**
|
|
4691
|
+
* 移动列到指定列的位置
|
|
4692
|
+
* @param fieldOrColumn
|
|
4693
|
+
* @param targetFieldOrColumn
|
|
4694
|
+
* @param options
|
|
4695
|
+
*/
|
|
4696
|
+
moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
|
|
4697
|
+
const {
|
|
4698
|
+
fullColumnIdData,
|
|
4699
|
+
visibleColumn
|
|
4700
|
+
} = internalData;
|
|
4701
|
+
const {
|
|
4702
|
+
dragToChild,
|
|
4703
|
+
dragPos,
|
|
4704
|
+
isCrossDrag
|
|
4705
|
+
} = Object.assign({}, options);
|
|
4706
|
+
const dragCol = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
4707
|
+
let prevDragCol = null;
|
|
4708
|
+
const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
|
|
4709
|
+
let defPos = 'left';
|
|
4710
|
+
if (_xeUtils.default.isNumber(targetFieldOrColumn)) {
|
|
4711
|
+
if (colRest && targetFieldOrColumn) {
|
|
4712
|
+
let currList = colRest.items;
|
|
4713
|
+
let offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4714
|
+
if (isCrossDrag) {
|
|
4715
|
+
currList = visibleColumn;
|
|
4716
|
+
offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4717
|
+
}
|
|
4718
|
+
if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
|
|
4719
|
+
prevDragCol = currList[offsetIndex];
|
|
4720
|
+
}
|
|
4721
|
+
if (targetFieldOrColumn > 0) {
|
|
4722
|
+
defPos = 'right';
|
|
4723
|
+
}
|
|
4724
|
+
}
|
|
4725
|
+
} else {
|
|
4726
|
+
prevDragCol = (0, _util.handleFieldOrColumn)($xeTable, targetFieldOrColumn);
|
|
4727
|
+
const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
|
|
4728
|
+
if (colRest && targetColRest) {
|
|
4729
|
+
if (targetColRest._index > colRest._index) {
|
|
4730
|
+
defPos = 'right';
|
|
4731
|
+
}
|
|
4732
|
+
}
|
|
4733
|
+
}
|
|
4734
|
+
return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
|
|
4735
|
+
},
|
|
4736
|
+
/**
|
|
4737
|
+
* 移动行到指定行的位置
|
|
4738
|
+
* @param rowidOrRow
|
|
4739
|
+
* @param targetRowidOrRow
|
|
4740
|
+
* @param options
|
|
4741
|
+
*/
|
|
4742
|
+
moveRowTo(rowidOrRow, targetRowidOrRow, options) {
|
|
4743
|
+
const {
|
|
4744
|
+
treeConfig
|
|
4745
|
+
} = props;
|
|
4746
|
+
const {
|
|
4747
|
+
fullAllDataRowIdData,
|
|
4748
|
+
afterFullData
|
|
4749
|
+
} = internalData;
|
|
4750
|
+
const {
|
|
4751
|
+
dragToChild,
|
|
4752
|
+
dragPos,
|
|
4753
|
+
isCrossDrag
|
|
4754
|
+
} = Object.assign({}, options);
|
|
4755
|
+
const treeOpts = computeTreeOpts.value;
|
|
4756
|
+
const dragRow = (0, _util.handleRowidOrRow)($xeTable, rowidOrRow);
|
|
4757
|
+
let prevDragRow = null;
|
|
4758
|
+
let defPos = 'top';
|
|
4759
|
+
const rowRest = dragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, dragRow)] : null;
|
|
4760
|
+
if (_xeUtils.default.isNumber(targetRowidOrRow)) {
|
|
4761
|
+
if (rowRest && targetRowidOrRow) {
|
|
4762
|
+
let currList = afterFullData;
|
|
4763
|
+
let offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4764
|
+
if (treeConfig) {
|
|
4765
|
+
currList = rowRest.items;
|
|
4766
|
+
if (treeOpts.transform) {
|
|
4767
|
+
offsetIndex = rowRest.treeIndex + targetRowidOrRow;
|
|
4768
|
+
if (isCrossDrag) {
|
|
4769
|
+
currList = afterFullData;
|
|
4770
|
+
offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4771
|
+
}
|
|
4772
|
+
}
|
|
4773
|
+
}
|
|
4774
|
+
if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
|
|
4775
|
+
prevDragRow = currList[offsetIndex];
|
|
4776
|
+
}
|
|
4777
|
+
if (targetRowidOrRow > 0) {
|
|
4778
|
+
defPos = 'bottom';
|
|
4779
|
+
}
|
|
4780
|
+
}
|
|
4781
|
+
} else {
|
|
4782
|
+
prevDragRow = (0, _util.handleRowidOrRow)($xeTable, targetRowidOrRow);
|
|
4783
|
+
const targetRowRest = prevDragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, prevDragRow)] : null;
|
|
4784
|
+
if (rowRest && targetRowRest) {
|
|
4785
|
+
if (targetRowRest._index > rowRest._index) {
|
|
4786
|
+
defPos = 'bottom';
|
|
4787
|
+
}
|
|
4788
|
+
}
|
|
4789
|
+
}
|
|
4790
|
+
return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
|
|
4791
|
+
},
|
|
4652
4792
|
/**
|
|
4653
4793
|
* 获取表格的全量列
|
|
4654
4794
|
*/
|
|
@@ -4672,6 +4812,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4672
4812
|
const {
|
|
4673
4813
|
treeConfig
|
|
4674
4814
|
} = props;
|
|
4815
|
+
const {
|
|
4816
|
+
selectCheckboxMaps
|
|
4817
|
+
} = reactData;
|
|
4675
4818
|
const {
|
|
4676
4819
|
tableFullData,
|
|
4677
4820
|
afterFullData,
|
|
@@ -4691,19 +4834,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4691
4834
|
} = checkboxOpts;
|
|
4692
4835
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4693
4836
|
let rowList = [];
|
|
4694
|
-
const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
|
|
4695
4837
|
if (checkField) {
|
|
4696
4838
|
if (treeConfig) {
|
|
4839
|
+
const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
|
|
4697
4840
|
rowList = _xeUtils.default.filterTree(currTableData, row => _xeUtils.default.get(row, checkField), {
|
|
4698
4841
|
children: transform ? mapChildrenField : childrenField
|
|
4699
4842
|
});
|
|
4700
4843
|
} else {
|
|
4844
|
+
const currTableData = isFull ? tableFullData : afterFullData;
|
|
4701
4845
|
rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
|
|
4702
4846
|
}
|
|
4703
4847
|
} else {
|
|
4704
|
-
const {
|
|
4705
|
-
selectCheckboxMaps
|
|
4706
|
-
} = reactData;
|
|
4707
4848
|
_xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
|
|
4708
4849
|
if (isFull) {
|
|
4709
4850
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -5486,6 +5627,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5486
5627
|
checkField,
|
|
5487
5628
|
reserve
|
|
5488
5629
|
} = checkboxOpts;
|
|
5630
|
+
// indeterminateField 仅支持读取
|
|
5489
5631
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
5490
5632
|
if (checkField) {
|
|
5491
5633
|
const handleClearChecked = item => {
|
|
@@ -5626,13 +5768,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5626
5768
|
* 用于当前列,设置某列行为高亮状态
|
|
5627
5769
|
*/
|
|
5628
5770
|
setCurrentColumn(fieldOrColumn) {
|
|
5771
|
+
const {
|
|
5772
|
+
mouseConfig
|
|
5773
|
+
} = props;
|
|
5774
|
+
const mouseOpts = computeMouseOpts.value;
|
|
5775
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected;
|
|
5629
5776
|
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
5630
5777
|
if (column) {
|
|
5631
|
-
|
|
5632
|
-
tableMethods.clearCurrentColumn();
|
|
5778
|
+
$xeTable.clearCurrentColumn();
|
|
5633
5779
|
reactData.currentColumn = column;
|
|
5634
5780
|
}
|
|
5635
|
-
return (0, _vue.nextTick)()
|
|
5781
|
+
return (0, _vue.nextTick)().then(() => {
|
|
5782
|
+
// 更新状选中态
|
|
5783
|
+
if (isMouseSelected) {
|
|
5784
|
+
$xeTable.addCellSelectedClass();
|
|
5785
|
+
}
|
|
5786
|
+
});
|
|
5636
5787
|
},
|
|
5637
5788
|
/**
|
|
5638
5789
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -5883,12 +6034,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5883
6034
|
column,
|
|
5884
6035
|
visible
|
|
5885
6036
|
} = filterStore;
|
|
5886
|
-
Object.assign(filterStore, {
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
|
|
5891
|
-
})
|
|
6037
|
+
// Object.assign(filterStore, {
|
|
6038
|
+
// isAllSelected: false,
|
|
6039
|
+
// isIndeterminate: false,
|
|
6040
|
+
// options: [],
|
|
6041
|
+
// visible: false
|
|
6042
|
+
// })
|
|
5892
6043
|
if (visible) {
|
|
5893
6044
|
dispatchEvent('filter-visible', {
|
|
5894
6045
|
column,
|
|
@@ -6940,7 +7091,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6940
7091
|
keyboardConfig,
|
|
6941
7092
|
treeConfig,
|
|
6942
7093
|
editConfig,
|
|
6943
|
-
highlightCurrentRow
|
|
7094
|
+
highlightCurrentRow,
|
|
7095
|
+
highlightCurrentColumn
|
|
6944
7096
|
} = props;
|
|
6945
7097
|
const {
|
|
6946
7098
|
ctxMenuStore,
|
|
@@ -6958,6 +7110,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6958
7110
|
const treeOpts = computeTreeOpts.value;
|
|
6959
7111
|
const menuList = computeMenuList.value;
|
|
6960
7112
|
const rowOpts = computeRowOpts.value;
|
|
7113
|
+
const columnOpts = computeColumnOpts.value;
|
|
6961
7114
|
const {
|
|
6962
7115
|
selected,
|
|
6963
7116
|
actived
|
|
@@ -7125,10 +7278,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7125
7278
|
// 如果按下了方向键
|
|
7126
7279
|
if (selected.row && selected.column) {
|
|
7127
7280
|
$xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
7128
|
-
}
|
|
7129
|
-
|
|
7281
|
+
}
|
|
7282
|
+
// 当前行按键上下移动
|
|
7283
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
7130
7284
|
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
7131
7285
|
}
|
|
7286
|
+
// 当前行按键左右移动
|
|
7287
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
7288
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
|
|
7289
|
+
}
|
|
7132
7290
|
}
|
|
7133
7291
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
7134
7292
|
// 如果按下了 Tab 键切换
|
|
@@ -7631,7 +7789,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7631
7789
|
if (el) {
|
|
7632
7790
|
const parentElem = el.parentNode;
|
|
7633
7791
|
const parentPaddingSize = height === '100%' || height === 'auto' ? (0, _dom.getPaddingTopBottomSize)(parentElem) : 0;
|
|
7634
|
-
|
|
7792
|
+
let parentWrapperHeight = 0;
|
|
7793
|
+
if (parentElem) {
|
|
7794
|
+
if ($xeGrid && (0, _dom.hasClass)(parentElem, 'vxe-grid--table-wrapper')) {
|
|
7795
|
+
parentWrapperHeight = $xeGrid.getParentHeight();
|
|
7796
|
+
} else {
|
|
7797
|
+
parentWrapperHeight = parentElem.clientHeight;
|
|
7798
|
+
}
|
|
7799
|
+
}
|
|
7800
|
+
return Math.floor(parentWrapperHeight - parentPaddingSize);
|
|
7635
7801
|
}
|
|
7636
7802
|
return 0;
|
|
7637
7803
|
},
|
|
@@ -7733,30 +7899,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7733
7899
|
const {
|
|
7734
7900
|
treeConfig
|
|
7735
7901
|
} = props;
|
|
7736
|
-
const
|
|
7902
|
+
const {
|
|
7903
|
+
treeExpandedMaps
|
|
7904
|
+
} = reactData;
|
|
7737
7905
|
const {
|
|
7738
7906
|
fullAllDataRowIdData,
|
|
7739
7907
|
tableFullData,
|
|
7740
7908
|
tableFullTreeData
|
|
7741
7909
|
} = internalData;
|
|
7910
|
+
const treeOpts = computeTreeOpts.value;
|
|
7742
7911
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7743
7912
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
7913
|
+
const {
|
|
7914
|
+
lazy
|
|
7915
|
+
} = treeOpts;
|
|
7744
7916
|
const rowkey = (0, _util.getRowkey)($xeTable);
|
|
7745
|
-
const
|
|
7746
|
-
const fullAllDataRowIdMaps = {};
|
|
7917
|
+
const isDeepKey = rowkey.indexOf('.') > -1;
|
|
7918
|
+
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
7747
7919
|
const fullDataRowIdMaps = {};
|
|
7748
|
-
const
|
|
7749
|
-
|
|
7750
|
-
|
|
7751
|
-
|
|
7752
|
-
if ((0, _utils.eqEmptyValue)(rowid)) {
|
|
7753
|
-
rowid = (0, _util.getRowUniqueId)();
|
|
7754
|
-
_xeUtils.default.set(row, rowkey, rowid);
|
|
7755
|
-
}
|
|
7756
|
-
if (isLazy && row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
|
|
7757
|
-
row[childrenField] = null;
|
|
7758
|
-
}
|
|
7759
|
-
let rowRest = fullAllDataRowIdData[rowid];
|
|
7920
|
+
const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
|
|
7921
|
+
const handleRowId = isDeepKey ? _util.updateDeepRowKey : _util.updateFastRowKey;
|
|
7922
|
+
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
7923
|
+
let rowRest = fullAllDataRowIdMaps[rowid];
|
|
7760
7924
|
if (!rowRest) {
|
|
7761
7925
|
rowRest = {
|
|
7762
7926
|
row,
|
|
@@ -7774,24 +7938,46 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7774
7938
|
oTop: 0,
|
|
7775
7939
|
expandHeight: 0
|
|
7776
7940
|
};
|
|
7941
|
+
fullDataRowIdMaps[rowid] = rowRest;
|
|
7942
|
+
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
7777
7943
|
}
|
|
7944
|
+
rowRest.treeLoaded = false;
|
|
7945
|
+
rowRest.expandLoaded = false;
|
|
7778
7946
|
rowRest.row = row;
|
|
7779
7947
|
rowRest.items = items;
|
|
7780
7948
|
rowRest.parent = parentRow;
|
|
7781
7949
|
rowRest.level = level;
|
|
7782
|
-
rowRest.index =
|
|
7950
|
+
rowRest.index = currIndex;
|
|
7951
|
+
rowRest.treeIndex = index;
|
|
7783
7952
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
7784
7953
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
7785
7954
|
};
|
|
7786
|
-
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
7787
|
-
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
7788
7955
|
if (treeConfig) {
|
|
7789
|
-
_xeUtils.default.eachTree(tableFullTreeData,
|
|
7956
|
+
_xeUtils.default.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
7957
|
+
const rowid = handleRowId(row, rowkey);
|
|
7958
|
+
if (treeConfig && lazy) {
|
|
7959
|
+
const treeExpRest = treeTempExpandedMaps[rowid];
|
|
7960
|
+
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
7961
|
+
row[childrenField] = null;
|
|
7962
|
+
}
|
|
7963
|
+
if (treeExpRest) {
|
|
7964
|
+
if (!row[childrenField] || !row[childrenField].length) {
|
|
7965
|
+
delete treeTempExpandedMaps[rowid];
|
|
7966
|
+
}
|
|
7967
|
+
}
|
|
7968
|
+
}
|
|
7969
|
+
handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, (0, _util.toTreePathSeq)(path));
|
|
7970
|
+
}, {
|
|
7790
7971
|
children: childrenField
|
|
7791
7972
|
});
|
|
7792
7973
|
} else {
|
|
7793
|
-
tableFullData.forEach(
|
|
7974
|
+
tableFullData.forEach((row, index, items) => {
|
|
7975
|
+
handleRowCache(row, index, items, index, null, handleRowId(row, rowkey), 0, index + 1);
|
|
7976
|
+
});
|
|
7794
7977
|
}
|
|
7978
|
+
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
7979
|
+
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
7980
|
+
reactData.treeExpandedMaps = treeTempExpandedMaps;
|
|
7795
7981
|
},
|
|
7796
7982
|
cacheSourceMap(fullData) {
|
|
7797
7983
|
const {
|
|
@@ -8540,6 +8726,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8540
8726
|
checkStrictly,
|
|
8541
8727
|
checkMethod
|
|
8542
8728
|
} = checkboxOpts;
|
|
8729
|
+
// indeterminateField 仅支持读取
|
|
8543
8730
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
8544
8731
|
if (checkField) {
|
|
8545
8732
|
// 树结构
|
|
@@ -8753,6 +8940,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8753
8940
|
} = internalData;
|
|
8754
8941
|
const sortOpts = computeSortOpts.value;
|
|
8755
8942
|
const columnOpts = computeColumnOpts.value;
|
|
8943
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
8756
8944
|
const {
|
|
8757
8945
|
column
|
|
8758
8946
|
} = params;
|
|
@@ -8761,7 +8949,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8761
8949
|
const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
|
|
8762
8950
|
const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
|
|
8763
8951
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
8764
|
-
|
|
8952
|
+
$xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
|
|
8765
8953
|
}
|
|
8766
8954
|
dispatchEvent('header-cell-click', Object.assign({
|
|
8767
8955
|
triggerResizable,
|
|
@@ -8769,8 +8957,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8769
8957
|
triggerFilter,
|
|
8770
8958
|
cell
|
|
8771
8959
|
}, params), evnt);
|
|
8772
|
-
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
8773
|
-
|
|
8960
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
8961
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
8774
8962
|
}
|
|
8775
8963
|
},
|
|
8776
8964
|
triggerHeaderCellDblclickEvent(evnt, params) {
|
|
@@ -8786,6 +8974,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8786
8974
|
triggerCellClickEvent(evnt, params) {
|
|
8787
8975
|
const {
|
|
8788
8976
|
highlightCurrentRow,
|
|
8977
|
+
highlightCurrentColumn,
|
|
8789
8978
|
editConfig
|
|
8790
8979
|
} = props;
|
|
8791
8980
|
const {
|
|
@@ -8802,6 +8991,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8802
8991
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
8803
8992
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
8804
8993
|
const rowOpts = computeRowOpts.value;
|
|
8994
|
+
const columnOpts = computeColumnOpts.value;
|
|
8995
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
8805
8996
|
const {
|
|
8806
8997
|
actived,
|
|
8807
8998
|
focused
|
|
@@ -8832,29 +9023,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8832
9023
|
if (!triggerCheckbox && !triggerRadio) {
|
|
8833
9024
|
// 如果是展开行
|
|
8834
9025
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || isExpandType && expandOpts.trigger === 'cell')) {
|
|
8835
|
-
|
|
9026
|
+
$xeTable.triggerRowExpandEvent(evnt, params);
|
|
8836
9027
|
}
|
|
8837
9028
|
// 如果是树形表格
|
|
8838
9029
|
if (treeOpts.trigger === 'row' || treeNode && treeOpts.trigger === 'cell') {
|
|
8839
|
-
|
|
9030
|
+
$xeTable.triggerTreeExpandEvent(evnt, params);
|
|
8840
9031
|
}
|
|
8841
9032
|
}
|
|
8842
9033
|
// 如果点击了树节点
|
|
8843
9034
|
if (!triggerTreeNode) {
|
|
8844
9035
|
if (!triggerExpandNode) {
|
|
8845
|
-
//
|
|
9036
|
+
// 如果是当前行
|
|
8846
9037
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
8847
9038
|
if (!triggerCheckbox && !triggerRadio) {
|
|
8848
|
-
|
|
9039
|
+
$xeTable.triggerCurrentRowEvent(evnt, params);
|
|
9040
|
+
}
|
|
9041
|
+
}
|
|
9042
|
+
// 如果是当前列
|
|
9043
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
9044
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
9045
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
8849
9046
|
}
|
|
8850
9047
|
}
|
|
8851
9048
|
// 如果是单选框
|
|
8852
9049
|
if (!triggerRadio && (radioOpts.trigger === 'row' || isRadioType && radioOpts.trigger === 'cell')) {
|
|
8853
|
-
|
|
9050
|
+
$xeTable.triggerRadioRowEvent(evnt, params);
|
|
8854
9051
|
}
|
|
8855
9052
|
// 如果是复选框
|
|
8856
9053
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || isCheckboxType && checkboxOpts.trigger === 'cell')) {
|
|
8857
|
-
|
|
9054
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params);
|
|
8858
9055
|
}
|
|
8859
9056
|
}
|
|
8860
9057
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -9390,6 +9587,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9390
9587
|
} = internalData;
|
|
9391
9588
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
9392
9589
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
9590
|
+
const errRest = {
|
|
9591
|
+
status: false
|
|
9592
|
+
};
|
|
9393
9593
|
if (prevDragRow && dragRow) {
|
|
9394
9594
|
// 判断是否有拖动
|
|
9395
9595
|
if (prevDragRow !== dragRow) {
|
|
@@ -9404,7 +9604,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9404
9604
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
9405
9605
|
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
|
|
9406
9606
|
if (!status) {
|
|
9407
|
-
return;
|
|
9607
|
+
return errRest;
|
|
9408
9608
|
}
|
|
9409
9609
|
let oafIndex = -1;
|
|
9410
9610
|
let nafIndex = -1;
|
|
@@ -9435,11 +9635,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9435
9635
|
if (isPeerDrag && !isCrossDrag) {
|
|
9436
9636
|
if (oldRest.row[parentField] !== newRest.row[parentField]) {
|
|
9437
9637
|
// 非同级
|
|
9438
|
-
return;
|
|
9638
|
+
return errRest;
|
|
9439
9639
|
}
|
|
9440
9640
|
} else {
|
|
9441
9641
|
if (!isCrossDrag) {
|
|
9442
|
-
return;
|
|
9642
|
+
return errRest;
|
|
9443
9643
|
}
|
|
9444
9644
|
if (oldAllMaps[newRowid]) {
|
|
9445
9645
|
isSelfToChildStatus = true;
|
|
@@ -9450,19 +9650,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9450
9650
|
content: getI18n('vxe.error.treeDragChild')
|
|
9451
9651
|
});
|
|
9452
9652
|
}
|
|
9453
|
-
return;
|
|
9653
|
+
return errRest;
|
|
9454
9654
|
}
|
|
9455
9655
|
}
|
|
9456
9656
|
}
|
|
9457
9657
|
} else if (oldLevel) {
|
|
9458
9658
|
// 子到根
|
|
9459
9659
|
if (!isCrossDrag) {
|
|
9460
|
-
return;
|
|
9660
|
+
return errRest;
|
|
9461
9661
|
}
|
|
9462
9662
|
} else if (newLevel) {
|
|
9463
9663
|
// 根到子
|
|
9464
9664
|
if (!isCrossDrag) {
|
|
9465
|
-
return;
|
|
9665
|
+
return errRest;
|
|
9466
9666
|
}
|
|
9467
9667
|
if (oldAllMaps[newRowid]) {
|
|
9468
9668
|
isSelfToChildStatus = true;
|
|
@@ -9473,7 +9673,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9473
9673
|
content: getI18n('vxe.error.treeDragChild')
|
|
9474
9674
|
});
|
|
9475
9675
|
}
|
|
9476
|
-
return;
|
|
9676
|
+
return errRest;
|
|
9477
9677
|
}
|
|
9478
9678
|
}
|
|
9479
9679
|
} else {
|
|
@@ -9531,26 +9731,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9531
9731
|
if (reactData.scrollYLoad) {
|
|
9532
9732
|
$xeTable.updateScrollYSpace();
|
|
9533
9733
|
}
|
|
9534
|
-
|
|
9734
|
+
if (evnt) {
|
|
9735
|
+
dispatchEvent('row-dragend', {
|
|
9736
|
+
oldRow: dragRow,
|
|
9737
|
+
newRow: prevDragRow,
|
|
9738
|
+
dragRow,
|
|
9739
|
+
dragPos: prevDragPos,
|
|
9740
|
+
dragToChild: isDragToChildFlag,
|
|
9741
|
+
offsetIndex: dragOffsetIndex,
|
|
9742
|
+
_index: {
|
|
9743
|
+
newIndex: nafIndex,
|
|
9744
|
+
oldIndex: oafIndex
|
|
9745
|
+
}
|
|
9746
|
+
}, evnt);
|
|
9747
|
+
}
|
|
9748
|
+
return (0, _vue.nextTick)().then(() => {
|
|
9535
9749
|
$xeTable.updateCellAreas();
|
|
9536
9750
|
$xeTable.recalculate();
|
|
9751
|
+
}).then(() => {
|
|
9752
|
+
return {
|
|
9753
|
+
status: true
|
|
9754
|
+
};
|
|
9537
9755
|
});
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
dragRow,
|
|
9542
|
-
dragPos: prevDragPos,
|
|
9543
|
-
dragToChild: isDragToChildFlag,
|
|
9544
|
-
offsetIndex: dragOffsetIndex,
|
|
9545
|
-
_index: {
|
|
9546
|
-
newIndex: nafIndex,
|
|
9547
|
-
oldIndex: oafIndex
|
|
9548
|
-
}
|
|
9549
|
-
}, evnt);
|
|
9550
|
-
}).catch(() => {});
|
|
9756
|
+
}).catch(() => {
|
|
9757
|
+
return errRest;
|
|
9758
|
+
});
|
|
9551
9759
|
}
|
|
9552
9760
|
}
|
|
9553
|
-
return Promise.resolve();
|
|
9761
|
+
return Promise.resolve(errRest);
|
|
9554
9762
|
},
|
|
9555
9763
|
handleRowDragDragendEvent(evnt) {
|
|
9556
9764
|
const {
|
|
@@ -9719,6 +9927,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9719
9927
|
collectColumn
|
|
9720
9928
|
} = internalData;
|
|
9721
9929
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
|
|
9930
|
+
const errRest = {
|
|
9931
|
+
status: false
|
|
9932
|
+
};
|
|
9722
9933
|
if (prevDragCol && dragCol) {
|
|
9723
9934
|
// 判断是否有拖动
|
|
9724
9935
|
if (prevDragCol !== dragCol) {
|
|
@@ -9735,7 +9946,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9735
9946
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
9736
9947
|
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
|
|
9737
9948
|
if (!status) {
|
|
9738
|
-
return;
|
|
9949
|
+
return errRest;
|
|
9739
9950
|
}
|
|
9740
9951
|
let oafIndex = -1;
|
|
9741
9952
|
let nafIndex = -1;
|
|
@@ -9749,11 +9960,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9749
9960
|
if (isPeerDrag && !isCrossDrag) {
|
|
9750
9961
|
if (dragColumn.parentId !== newColumn.parentId) {
|
|
9751
9962
|
// 非同级
|
|
9752
|
-
return;
|
|
9963
|
+
return errRest;
|
|
9753
9964
|
}
|
|
9754
9965
|
} else {
|
|
9755
9966
|
if (!isCrossDrag) {
|
|
9756
|
-
return;
|
|
9967
|
+
return errRest;
|
|
9757
9968
|
}
|
|
9758
9969
|
if (oldAllMaps[newColumn.id]) {
|
|
9759
9970
|
isSelfToChildStatus = true;
|
|
@@ -9764,19 +9975,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9764
9975
|
content: getI18n('vxe.error.treeDragChild')
|
|
9765
9976
|
});
|
|
9766
9977
|
}
|
|
9767
|
-
return;
|
|
9978
|
+
return errRest;
|
|
9768
9979
|
}
|
|
9769
9980
|
}
|
|
9770
9981
|
}
|
|
9771
9982
|
} else if (dragColumn.parentId) {
|
|
9772
9983
|
// 子到根
|
|
9773
9984
|
if (!isCrossDrag) {
|
|
9774
|
-
return;
|
|
9985
|
+
return errRest;
|
|
9775
9986
|
}
|
|
9776
9987
|
} else if (newColumn.parentId) {
|
|
9777
9988
|
// 根到子
|
|
9778
9989
|
if (!isCrossDrag) {
|
|
9779
|
-
return;
|
|
9990
|
+
return errRest;
|
|
9780
9991
|
}
|
|
9781
9992
|
if (oldAllMaps[newColumn.id]) {
|
|
9782
9993
|
isSelfToChildStatus = true;
|
|
@@ -9787,7 +9998,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9787
9998
|
content: getI18n('vxe.error.treeDragChild')
|
|
9788
9999
|
});
|
|
9789
10000
|
}
|
|
9790
|
-
return;
|
|
10001
|
+
return errRest;
|
|
9791
10002
|
}
|
|
9792
10003
|
}
|
|
9793
10004
|
} else {
|
|
@@ -9856,25 +10067,32 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9856
10067
|
$xeTable.clearCopyCellArea();
|
|
9857
10068
|
}
|
|
9858
10069
|
}
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
10070
|
+
if (evnt) {
|
|
10071
|
+
dispatchEvent('column-dragend', {
|
|
10072
|
+
oldColumn: dragColumn,
|
|
10073
|
+
newColumn,
|
|
10074
|
+
dragColumn,
|
|
10075
|
+
dragPos: prevDragPos,
|
|
10076
|
+
dragToChild: isDragToChildFlag,
|
|
10077
|
+
offsetIndex: dragOffsetIndex,
|
|
10078
|
+
_index: {
|
|
10079
|
+
newIndex: nafIndex,
|
|
10080
|
+
oldIndex: oafIndex
|
|
10081
|
+
}
|
|
10082
|
+
}, evnt);
|
|
10083
|
+
}
|
|
9871
10084
|
if (isSyncColumn) {
|
|
9872
10085
|
$xeTable.handleColDragSwapColumn();
|
|
9873
10086
|
}
|
|
9874
|
-
|
|
10087
|
+
return {
|
|
10088
|
+
status: true
|
|
10089
|
+
};
|
|
10090
|
+
}).catch(() => {
|
|
10091
|
+
return errRest;
|
|
10092
|
+
});
|
|
9875
10093
|
}
|
|
9876
10094
|
}
|
|
9877
|
-
return Promise.resolve();
|
|
10095
|
+
return Promise.resolve(errRest);
|
|
9878
10096
|
},
|
|
9879
10097
|
handleHeaderCellDragDragendEvent(evnt) {
|
|
9880
10098
|
const {
|
|
@@ -10818,18 +11036,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10818
11036
|
}
|
|
10819
11037
|
};
|
|
10820
11038
|
// 检测对应模块是否安装
|
|
10821
|
-
|
|
10822
|
-
|
|
10823
|
-
|
|
10824
|
-
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
|
|
10828
|
-
|
|
10829
|
-
|
|
10830
|
-
|
|
10831
|
-
});
|
|
10832
|
-
}
|
|
11039
|
+
'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
|
|
11040
|
+
$xeTable[name] = function () {
|
|
11041
|
+
(0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
|
|
11042
|
+
};
|
|
11043
|
+
});
|
|
11044
|
+
'clearValidate,fullValidate,validate'.split(',').forEach(name => {
|
|
11045
|
+
$xeTable[name] = function () {
|
|
11046
|
+
(0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
|
|
11047
|
+
};
|
|
11048
|
+
});
|
|
10833
11049
|
Object.assign($xeTable, tableMethods, tablePrivateMethods);
|
|
10834
11050
|
/**
|
|
10835
11051
|
* 渲染浮固定列
|
|
@@ -11808,20 +12024,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
11808
12024
|
$table: $xeTable
|
|
11809
12025
|
});
|
|
11810
12026
|
});
|
|
11811
|
-
|
|
11812
|
-
(
|
|
11813
|
-
if (
|
|
11814
|
-
|
|
11815
|
-
(0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
|
|
11816
|
-
}
|
|
12027
|
+
(0, _vue.nextTick)(() => {
|
|
12028
|
+
if (props.loading) {
|
|
12029
|
+
if (!VxeUILoadingComponent && !slots.loading) {
|
|
12030
|
+
(0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
|
|
11817
12031
|
}
|
|
11818
|
-
|
|
11819
|
-
|
|
11820
|
-
|
|
11821
|
-
|
|
12032
|
+
}
|
|
12033
|
+
if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip' || props.tooltipConfig || props.editRules) {
|
|
12034
|
+
if (!VxeUITooltipComponent) {
|
|
12035
|
+
(0, _log.errLog)('vxe.error.reqComp', ['vxe-tooltip']);
|
|
11822
12036
|
}
|
|
11823
|
-
}
|
|
11824
|
-
}
|
|
12037
|
+
}
|
|
12038
|
+
});
|
|
11825
12039
|
(0, _vue.provide)('$xeColgroup', null);
|
|
11826
12040
|
(0, _vue.provide)('$xeTable', $xeTable);
|
|
11827
12041
|
$xeTable.renderVN = renderVN;
|